2009-08-17 58 views
0

刚刚在Xcode(基于视图)中创建了一个新项目,并尝试以编程方式创建一个像这样的按钮,但未显示。为什么不?为什么这个按钮不显示? iPhone-dev

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // Override point for customization after app launch  
    [window addSubview:viewController.view]; 

    CGRect rect = CGRectMake(0, 20,100,20); 
    UIButton *button = [[UIButton alloc] initWithFrame:rect]; 

    [viewController.view addSubview:button]; 

    [window makeKeyAndVisible]; 
} 

回答

2

更好的是,你不使用应用程序委托设置你的看法,只是加载你的第一个根视图。因此,改变的appDelegate的applicationDidFinishLaunching:回到

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // Override point for customization after app launch  
    [window addSubview:viewController.view]; 

    [window makeKeyAndVisible]; 
} 

,并进入你的观点,即它调用和冲在这段代码中,将创建您的UIButton你。我还添加了背景颜色的更改以确保您正在加载此视图。

- (void)loadView { 
    self.view = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,480)]; 
    self.view.backgroundColor = [UIColor redColor]; 

    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 20, 100, 20)]; 
    [button setTitle:@"UIButton!" forState:UIControlStateNormal]; 
    [button setReversesTitleShadowWhenHighlighted:YES]; 
    [button setShowsTouchWhenHighlighted:YES]; 

    [self.view addSubview:button]; 
    [button release]; 
} 

平时我宁愿以编程方式建立我的意见,因为我可以重写的drawRect:你不能里面的InterfaceBuilder做AFAIK。

-5

不这样做。使用Interface Builder。

+0

降评级有点苛刻,但我确实认为这不是一个好的答案。我发现界面生成器对于重要的定制过于笨拙。这比它的价值更麻烦。 – Amagrammer 2009-08-17 23:23:37

0

你确定它没有显示?它可能只是透明的,你不能看到它,尝试设置按钮背景颜色的东西...

+0

我试着用setBackgroundColor改变按钮的背景颜色,但是没有任何区别。 – quano 2009-08-17 14:23:54

+0

尝试添加按钮后,使窗口可见,然后会发生什么? – Daniel 2009-08-17 14:33:37

+0

我试着将它添加到窗口中,然后你就可以看到它。这只是一个矩形,而不是可交互的。 – quano 2009-08-17 14:39:59

1

试着用[UIButton buttonWithType: UIButtonTypeCustom][UIButton buttonWithType: UIButtonTypeRoundedRect]

我发现那些工作了很多更好的创建按钮。他们当然要更加自我记录。

相关问题