iOS开发中长使用的一些简单的的小技巧总结一下
iOS 实用小技巧
控件的局部圆角问题
你是不是也遇到过这样的问题,一个button后者Label,只要右边的两个圆角,或者一个圆角,改怎么做呢,需要图层蒙版帮助我们:
1 | CGRect rect = CGRectMake(0, 0, 200, 200); |
这里关于UIBezierPath说明一些知识点:
1 | UIBezierPath相关的API说明 |
关于navigationBar的透明问问题,
如果仅仅把navigationBar的alpha设置为0的话,那就相当于把navigationBar给隐藏了,大家都知道,父视图的alpha设置为0的话,那么子视图全部是透明的,那么相应的navigationBar的标题和左右两个按钮都会消失,这样显然达不到我们要求的效果,
如果仅仅只是navigationBar透明,按钮和标题都可以使用一下方法1
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
细心的同学会发现此时navigationBar下面是有一根线的,取消这根线的办法是:
1 | self.navigationController.navigationBar.shadowImage = [UIImage new]; |
如果你想在透明的的基础下实现下拉距离,有透明变得不透明的效果,这就需要另一中办法来实现
1 | //navigationBar是一个复合视图,它有很多控件组成,那么我们就可以从他的内部入手 |
全局设置navigationBar标题的样式和barItem的标题样式
1 | [[UINavigationBar appearance] setBarTintColor:UIColorWithHexRGB(0xfefefe)]; |
navigationBar显示的隐藏过度
相信使用中中肯定遇到过,一个页面隐藏navigationBar,另一个页面不隐藏,两个页面进行push和pop的时候,尤其是侧滑手势返回返回的时候,不做处理就会造成滑动返回时,navigationBar位置是空的,直接显示一个黑色或者显示在下面一层视图,很难看。这需要我们加入过度动画来隐藏或者显示navigationBar:在返回后将要出现的页面实现ViewWillAppear方法,需要隐藏就设置为YES,需要显示设置为NO1
2
3
4- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
侧滑手势返回
iOS的侧滑返回手势有很好的操作体验,不支持侧滑返回的应用绝对不是好应用,但是在开发过程中在自定义返回按钮,或者某些webView,tableView等页面,侧滑返回手势失效,这时候就需要我们来进行设置,可以在积累里面实现如下代码:1
2
3
4if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
//需要遵循一下手势的代理 self.navigationController.interactivePopGestureRecognizer.delegate = self;
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}
可以实现给UIView设置图片,简单的总结,1
2
3
4
5UIImage *image = [UIImage imageNamed:@"playing"];
_layerView.layer.contents = (__bridge id)image.CGImage;
_layerView.layer.contentsCenter = CGRectMake(0.25, 0.25, 0.5, 0.5);
同样可以设置显示的图片范围
不过此处略有不同,这里的四个值均为0-1之间;对应的依然是写x,y,widt,height