2011-03-29 46 views
2

在我的应用程序中,当用户点击一个信息按钮时,它应该添加另一个视图到特定位置的屏幕。我试图实现与下面的方法此行为:添加一个子视图看起来什么也不做

- (IBAction)showInfo1:(id)sender 
    { 
    UIView *myView1 = [[UIView alloc] initWithFrame:CGRectMake(25,25,50,20)]; 
    [self.view addSubview:myView1]; 
    } 

(我声明我在类的头文件中的一切。)

当我运行的代码,并按下按钮,没有出现发生(我没有看到新的观点)。

我还注意到,Xcode是显示以下警告:

“myView1”的局部声明隐藏实例变量。

有没有人有任何想法?

回答

4

你怎么知道没有什么变化?

它看起来像myView1实际上不包含任何东西。尝试设置myView1

的背景色
- (IBAction) showInfo1: (id) sender 
{ 
    UIView *myView1 = [[UIView alloc] initWithFrame:CGRectMake(25,25,50,20)]; 
    myView1.backgroundColor = [UIColor redColor]; 
    [self.view addSubview: myView1]; 
} 

要在您需要更改CGRectMake()的参数,例如

在最高层留下的50宽打开它的特定点开启你可以做的高度为20:

CGRectMake(0, 0, 50, 20) 
+0

这个警告的含义是什么? – mstottrop 2011-03-29 16:14:05

+0

你收到什么警告? – JFoulkes 2011-03-29 16:16:00

+0

'myView1'的本地声明隐藏了实例变量。 – mstottrop 2011-03-29 16:17:35

1

“myView1的本地声明隐藏了实例变量”。出现消息是因为您已经在类中声明了一些具有相同名称的属性(即使类型不同)。

如果你把UIView *myView1类定义中,你的方法看起来像

- (IBAction)showInfo1:(id)sender{ 
    myView1 = [[UIView alloc] initWithFrame:CGRectMake(25,25,50,20)]; 
    [self.view addSubview:myView1]; 
} 

这里来更多的考虑:你必须释放myView1当你停止使用,避免放置不止一次,等但在这里我们有基本的想法。

最后,也许您的视图已添加,但因为它尚未包含任何内容,所以您不会注意到它。你也想检查UIViewController,看看你是否更好。