本文主要是介绍iOS drawRect 和 awakeFromNib,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天想在一个view上绘制一个虚线边框,百度到的代码如下:
CAShapeLayer *borderLayer = [CAShapeLayer layer];borderLayer.frame = self.addButton.bounds;borderLayer.path = [UIBezierPath bezierPathWithRect:self.addButton.bounds].CGPath;borderLayer.lineWidth = 1.0;borderLayer.lineCap = @"square";//虚线边框borderLayer.lineDashPattern = @[@4, @2];borderLayer.fillColor = [UIColor clearColor].CGColor;borderLayer.strokeColor = [UIColor redColor].CGColor;[self.addButton.layer addSublayer:borderLayer];
这是我的xib截图:
开始,我想把这段代码放到awakeFromNib函数中,结果发现frame总是不对,self.addButton 的宽度竟然比我模拟器的宽度都大,我的模拟器是320宽度,self.addButton的宽度是344. 我想为什么会是这么奇怪的值,后台看了一下xib的中的设置,一下子明白了。我在xib中,把self.addButton的宽度设定的就是344!awakeFromNib 这个函数中,得到的都是原始值,没有经过约束的调整。
之后我又实验了drawRect方法,这个方法是在awakeFromNib之后调用的,这个drawRect调用时,尺寸的约束应该是应用上了。得到了准确的宽度!
这篇关于iOS drawRect 和 awakeFromNib的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!