Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone视图不可见_Iphone - Fatal编程技术网

iPhone视图不可见

iPhone视图不可见,iphone,Iphone,我的loadView方法中有以下代码,无法理解为什么不能同时看到两个不同颜色的块。我认为第二个“self.view=”与第二个视图重叠,因此我只能看到绿色视图。然而,即使我将视图alpha设置为0.5,我仍然看不到蓝色块,绿色块只是变得更透明 我是不是错过了一些很愚蠢的事情 - (void)loadView { CGRect newFrame; newFrame.origin = CGPointMake(100, 100); newFrame.size = CGSizeMake(100, 40)

我的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;

}self.view一次只能保存一个视图,因此在代码中:

self.view=myView

然后

self.view=myView2


您基本上是将分配给self.view的“myView”替换为新的“myView2”,因此您将看不到第一个,而只看到第二个。

您将
self.view
设置为
myView
,然后几行之后将其重置为
myView2
。第二个赋值替换了第一个赋值,就像您分配了一个整数变量
i=42
,然后又分配了
i=100


查看UIView的
addSubview:
方法。

您只是在后续调用中使用self.view替换视图。您只能看到第二个视图,因为它是最后一个指定给当前视图的视图


尝试使用
addSubview:

谢谢。我尝试在第一个self.view=myView之后设置断点;但是屏幕上什么也没有出现。我本来希望看到蓝色的框,但当我通过休息时,看到视图变为绿色,但由于我无法使其工作,我不确定发生了什么。通常,一旦程序返回到主循环(位于框架内),显示就会更新。否则,每一个改变显示的操作都会执行昂贵的重画,即使下一行需要再次重画。这是有道理的。谢谢我可以使用addSubview:现在它可以正常工作了。[[self view]addSubview:myView2];