我的loadView方法中有以下代码,无法理解为什么我看不到两个不同颜色的块。我认为第二个'self.view ='与第二个视图重叠,所以我只能看到绿色视图。然而,即使我将视图alpha设置为0.5,我仍然看不到蓝色块,绿色块变得更透明。
我在这里错过了一些非常愚蠢的东西吗?
- (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;
}
答案 0 :(得分:1)
您将self.view
设置为myView
,然后只需几行就可以将其重置为myView2
。第二个赋值取代了第一个赋值,就好像你已经分配了一个整数变量i = 42
然后i = 100
。
查看UIView的addSubview:
方法。
答案 1 :(得分:0)
self.view一次只能包含一个视图,因此在您的代码中:
self.view = myView;
然后
self.view = myView2;
你基本上用新的“myView2”替换了分配给self.view的“myView”,所以你不会看到第一个,只有第二个。
答案 2 :(得分:0)
您只是在后续调用中使用self.view替换视图。您只会看到第二个视图,因为它是您分配给当前视图的最后一个视图。
尝试使用addSubview: