- layer.shouldRasterize
优化圆角图像的流畅度
let imageView = UIImageView(frame: frame)
imageView.image = UIImage(image: "default")
imageView.layer.cornerRadius = 10
imageView.layer.shouldRasterize = true
imageView.layer.rasterizationScale = UIScreen.mainScreen().scale
当shouldRasterize设成true时,layer被渲染成一个bitmap,并缓存起来,等下次使用时不会再重新去渲染了。实现圆角本身就是在做颜色混合(blending),如果每次页面出来时都blending,消耗太大,这时shouldRasterize = yes,下次就只是简单的从渲染引擎的cache里读取那张bitmap,节约系统资源。
额外收获:如果在滚动tableView时,每次都执行圆角设置,肯定会阻塞UI,设置这个将会使滑动更加流畅。
2.CGRect小技巧
CGRectGetHeight返回label本身的高度
CGRectGetWidth()返回label本身的宽度
CGRectGetMinY返回label顶部y的坐标
CGRectGetMaxY 返回label底部y的坐标
CGRectGetMinX 返回label左边缘x的坐标
CGRectGetMaxX 返回label右边缘x的坐标
CGRectGetMidX表示得到一个frame中心点的X坐标
CGRectGetMidY表示得到一个frame中心点的Y坐标
let label = UILabel(frame: CGRectMake(10, 10, 110, 150))
print("CGRectGetHeight--\(CGRectGetHeight(label.frame))" )
print("CGRectGetWidth--\(CGRectGetWidth(label.frame))")
print("CGRectGetMaxX--\(CGRectGetMaxX(label.frame))")
print("CGRectGetMaxY--\(CGRectGetMaxY(label.frame))")
print("CGRectGetMidX--\(CGRectGetMidX(label.frame))")
print("CGRectGetMidY--\(CGRectGetMidY(label.frame))")
print("CGRectGetMinX--\(CGRectGetMinX(label.frame))")
print("CGRectGetMinY--\(CGRectGetMinY(label.frame))")
2015-04-24 15:39:15.577 webView[15743:677046] CGRectGetHeight--150.000000
2015-04-24 15:39:15.577 webView[15743:677046] CGRectGetWidth--110.000000
2015-04-24 15:39:15.577 webView[15743:677046] CGRectGetMaxX--120.000000
2015-04-24 15:39:15.577 webView[15743:677046] CGRectGetMaxY--160.000000
2015-04-24 15:39:15.577 webView[15743:677046] CGRectGetMidX--65.000000
2015-04-24 15:39:15.578 webView[15743:677046] CGRectGetMidY--85.000000
2015-04-24 15:39:15.578 webView[15743:677046] CGRectGetMinX--10.000000
2015-04-24 15:39:15.578 webView[15743:677046] CGRectGetMinY--10.000000