Swift-Tips(1)

  1. 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容