ma1*_*w28 11 iphone performance uikit uiview ios
我正在UIImageView
使用白色背景颜色的超视图内部显示不透明的PNG .性能最好的是什么?
UIImageView
默认opaque = NO
,backgroundColor = nil
,clearsContextBeforeDrawing = YES
.
UIView
类参考UIView类参考:backgroundColor说,"[ nil
]产生透明的背景颜色." 如果我设置一个UIView
小号opaque
属性来YES
,要我还设置了backgroundColor
到[UIColor clearColor]
,或者是代码及处理额外的行不必要的?即,被[UIColor clearColor]
认为是不透明的(不透明)?
clearsContextBeforeDrawing
不透明视图的物质价值?
您的评论clearsContextBeforeDrawing
中UIView.h
说,它是不透明的意见被忽略.
但是,UIView类参考:clearsContextBeforeDrawing说:
如果视图的
opaque
属性也设置为YES
,则视图的属性backgroundColor
不得为nil
或可能出现绘制错误.
这是什么?
假设你的PNG总是填满整个UIImageView
,你应该使用以下方法获得最佳性能:
opaque = YES
,clearsContextBeforeDrawing = NO
.在这种模式下backgroundColor
是无关紧要的.像素被简单地替换为新的图像数据.
对于单色背景上的透明PNG,最快的将是:
opaque = YES
,clearsContextBeforeDrawing = YES
并backgroundColor
匹配您需要的任何东西.在这种情况下[UIColor whiteColor]
.
如果将 UIView 的 opaque 属性设置为 YES,则必须确保您的绘图完全填充视图且不透明。因此,您需要设置白色背景颜色(透明的背景颜色不起作用,因为它不是不透明的)。
我认为您不想更改图像视图的默认设置,但您应该确保您的 PNG 没有任何透明度(即没有 Alpha 通道;您可以在预览的图像检查器中检查这一点;确保它没有)不要说“有阿尔法”。)。我相信如果你给 UIImageView 一个不透明的图像,它会做正确的事情。
根据背景中的内容,使用 opaque = YES 和图像视图的白色背景可能会获得更好的性能(以防止重绘父视图的部分),但我不会以这种方式开始。
归档时间: |
|
查看次数: |
6471 次 |
最近记录: |