iPhone drawRect重新用于在视图中绘图

时间:2009-08-19 20:52:52

标签: iphone drawing

我创建了一个视图,并希望稍后根据用户触摸它时的应用状态来绘制或添加文本。

我是否可以使用drawRect执行此操作,因为我有多个可能的绘图/文本项目?如果是这样,你如何调用它?如果没有,我应该在哪里完成这个?

提前致谢,

史蒂夫

2 个答案:

答案 0 :(得分:1)

您可以通过调用

使UIView无效
[myView setNeedsDisplay];

OS会在适当的时间为myView调用drawRect。

答案 1 :(得分:0)

绘制简单对象(如文本,文件中的图像或纯色矩形)的最佳方法是将这些元素添加为视图的子视图。一般来说,除非你需要通过添加子视图来做一些你不能做的事情,否则更容易从不担心drawRect:方法。例如,如果要基于某些动态数据创建饼图,则编写自己的绘图例程可能是有意义的。否则,当您只使用视图和子视图时,始终会在适当的时候自动为您调用drawRect:,包括更改这些对象的任何属性以调用视觉差异,例如更改字体颜色,或子视图的像素坐标。

以下是如何向视图添加两个子视图的快速示例,例如在视图控制器的loadView方法中:

CGRect helloFrame = CGRectMake(10, 10, 100, 50);
UILabel* helloLabel = [[UILabel alloc] initWithFrame:helloFrame];
helloLabel.text = @"hello,";
helloLabel.textColor = [UIColor redColor];
[self.view addSubview:helloLabel];

CGRect worldFrame = CGRectMake(60, 60, 100, 50);
UILabel* worldLabel = [[UILabel alloc] initWithFrame:worldFrame];
worldLabel.text = @"world!";
worldLabel.textColor = [UIColor orangeColor];
[self.view addSubview:worldLabel];