我不明白这是如何运作的。如果我将UIView对象绘制到我的UIViewController .xib文件中,那么我的UIView会自行重绘。如果我将它添加到subView,如
CustomView : UIView
在UIViewController的viewDidLoad
中CustomView *v = [[CustomView alloc] initWithFrame:self.view.frame];
[self.view addSubview:v];
CustomView不会绘制自己。然后我试着做
[self.view setNeedsDisplay];
我仍然一无所获。只是一个白色的背景(不同于我以前得到的黑色背景),但没有我的绘画。以编程方式添加UIView时它是如何工作的?感谢。
答案 0 :(得分:0)
您可能只是错误地设置了CustomView
的框架。
每个视图都有自己的坐标空间,左上角有(0,0)。视图frame
位于其父级坐标空间中。这意味着将视图frame
设置为与其超级视图的frame
相同通常是错误的。
视图bounds
位于视图自己的坐标空间中。因此,如果您想让CustomView
完全涵盖其超级视图,则应将CustomView
' frame
设置为其超级视图的bounds
。< / p>
试试这个:
CustomView *v = [[CustomView alloc] initWithFrame:self.view.bounds];