在UIKit中创建透明线的最快方法是什么?

时间:2012-11-08 12:05:07

标签: iphone ios uikit core-graphics

这一个:

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(x, y, width, 1)];
view.backgroundColor = [UIColor whiteColor];
view.alpha = 0.1;

或者这个:

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(x, y, width, 1)];
view.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.1];

还是有第三种选择吗?使用带图像的UIImageView?使用CoreGraphics进行自定义绘图?什么应该是最快的?

1 个答案:

答案 0 :(得分:1)

最快的方法是创建CALayer。使用它可以在需要时轻松改变其颜色/不透明度。

CALayer *line = [CALayer new];
line.frame = CGRectMake(x, y, width, 1.0);
line.backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent:0.1].CGColor;
[someView.layer addSublayer:line];

如果要在现有视图上绘制一条直线并使其保持不变,则可以将以下代码添加到现有视图的drawRect:方法中:

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context, [[UIColor whiteColor] colorWithAlphaComponent:0.1].CGColor);
CGContextSetLineWidth(context, 1.0);
CGContextMoveToPoint(context, x, y);
CGContextAddLineToPoint(context, x + width, y);
CGContextStrokePath(context);