为什么这个按钮不显示? iPhone-dev
问题描述:
刚刚在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];
}
答
更好的是,你不使用应用程序委托设置你的看法,只是加载你的第一个根视图。因此,改变的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。
答
不这样做。使用Interface Builder。
答
试着用[UIButton buttonWithType: UIButtonTypeCustom]
或[UIButton buttonWithType: UIButtonTypeRoundedRect]
我发现那些工作了很多更好的创建按钮。他们当然要更加自我记录。
降评级有点苛刻,但我确实认为这不是一个好的答案。我发现界面生成器对于重要的定制过于笨拙。这比它的价值更麻烦。 – Amagrammer 2009-08-17 23:23:37