- layer.shouldRasterize
優(yōu)化圓角圖像的流暢度
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吏够,并緩存起來泥从,等下次使用時不會再重新去渲染了。實現(xiàn)圓角本身就是在做顏色混合(blending)千扔,如果每次頁面出來時都blending此虑,消耗太大甚纲,這時shouldRasterize = yes,下次就只是簡單的從渲染引擎的cache里讀取那張bitmap朦前,節(jié)約系統(tǒng)資源介杆。
額外收獲:如果在滾動tableView時鹃操,每次都執(zhí)行圓角設置,肯定會阻塞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