我在我的loadView方法中有以下代码,无法理解为什么我看不到两个不同的彩色块。我认为第二个'self.view ='与第二个视图重叠,所以我只能看到绿色的视图。但是,即使我将视图alpha设置为0.5,我仍然看不到蓝色块,但绿色块变得更加透明。iPhone视图不可见
我在这里错过了一些非常愚蠢的东西吗?
- (void)loadView {
CGRect newFrame;
newFrame.origin = CGPointMake(100, 100);
newFrame.size = CGSizeMake(100, 40);
UIView *myView = [[UIView alloc] initWithFrame:newFrame];
myView.backgroundColor = [UIColor blueColor];
//myView.alpha = 0.5;
self.view = myView;
CGRect newFrame2;
newFrame2.origin = CGPointMake(100, 200);
newFrame2.size = CGSizeMake(100, 40);
UIView *myView2 = [[UIView alloc] initWithFrame:newFrame2];
myView2.backgroundColor = [UIColor greenColor];
//myView2.alpha = 0.5;
self.view = myView2;
}
谢谢。我尝试在第一个self.view = myView之后设置一个断点。但没有出现在屏幕上。我期待看到蓝色方框,然后一旦我经过休息时间,将视图更改为绿色,但由于无法使用该功能,我不确定发生了什么。 – Mike 2011-03-13 13:19:41
一旦程序返回主循环(位于框架内),通常会更新显示。否则,每次改变显示器的操作都会执行昂贵的重绘操作,即使下一行需要重绘时也是如此。 – Anomie 2011-03-13 14:30:44
有道理。谢谢!我能够使用addSubview:它现在可以正常工作。 [[self view] addSubview:myView2]; – Mike 2011-03-14 01:45:44