iphone - 创建自定义 UI 后调用drawRect?

标签 iphone objective-c ios

我需要画两条线。我可以使用相同的 UIView 子类来进行两次绘制吗?创建 UIView 之后

draw2D *myView = [[draw2D alloc] initWithFrame:myRect];

如果我更改使用变量的方法,我可以更改这些值并调用drawRect方法来绘制不同的线吗?

- (void)drawRect:(CGRect)rect
{
    CGContextRef context01 = UIGraphicsGetCurrentContext();

    CGContextSetLineWidth(context01, 1.0);
    CGContextSetStrokeColorWithColor(context01, [[UIColor blackColor]CGColor]);
    CGContextMoveToPoint(context01, 0, 0);
    CGContextAddLineToPoint(context01, 800, 0);
    CGContextStrokePath(context01);

    CGContextRef context02 = UIGraphicsGetCurrentContext();

    CGContextSetLineWidth(context02, 1.0);
    CGContextSetStrokeColorWithColor(context02, [[UIColor blackColor]CGColor]);
    CGContextMoveToPoint(context02, 453, 0);
    CGContextAddLineToPoint(context02, 453, 800);
    CGContextStrokePath(context02);
}

最佳答案

只需在 View 上调用setNeedsDisplay即可强制再次调用其drawRect方法。

它不会立即重新绘制 View ,但会将其标记为需要在下一个 View 更新周期中再次绘制(大约每 60 秒更新一次)。这意味着您可以多次调用 setNeedsDisplay 而不会造成性能损失。

关于iphone - 创建自定义 UI 后调用drawRect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8975837/

相关文章:

ios - Z方向UIView旋转?

ios - 使用 ARC 为 @property 覆盖 @property setters with 'copy'

iphone - 如何通过完整的 YUV (YpCbCr) 4 :2:0 frame to opengl

ios - 如何从 iOS 上的硬件键盘检测按键向上/按键按下事件?

iphone - 在 NSURLConnection 下载期间更新 iPhone UIProgressView

iphone - 使用 AQ 和音频文件流动态检测和流式传输 AAC

ios - 我可以在不调整屏幕大小的情况下提交应用程序以在所有 iDevices 上工作吗?

ios - PhoneGap iOS 应用程序图标

IOS - 获取联系人电话用于通讯录

iphone - UIButton 内存管理 - 如何管理它?