iOS开发

Masonry自动布局下,bezierPathWithRound

2018-05-09  本文已影响512人  秋意阑珊

给视图指定角添加圆角

测试不同布局(绝对布局、相对布局)情况下使用UIBezierPath类的bezierPathWithRoundedRect:byRoundingCorners:cornerRadii方法给视图指定角添加圆角的效果,得到结论:
设置原则--不管什么布局方式,必须在能拿到View的frame(bounds)大小的时候设置才有用,如果在frame还没有的情况下设置,视图展示出来是看不到的

ViewController中:

1.绝对布局:设置完frame后就可以设置视图的圆角 2.相对布局:添加到VC的主视图self.view中的子视图设置圆角的地方:viewDidLayoutSubviews/viewDidAppear方法中,此时视图布局已经完成,视图的frame已经有值,可以正常设置圆角

自定义视图中

1.设置圆角的代码封装到自定义视图类中:应该在视图的drawRect方法或layoutSubviews方法中给视图自己设置圆角(initWithFrame方法中不一定传入frame,所以不能在这个方法中设置)(layoutSublayersOfLayer方法中也可以,但是这里会多次调用,有点多余)
2.自定义视图中的子视图设置圆角

详细代码参考详细的测试代码RandomCornerDemo,可以自己运行测试

上一篇 下一篇

猜你喜欢

热点阅读