2009-08-17 7 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を作成します。私はまた、このビューをロードしていることを確認するために背景色の変更を追加しました。あなたは私の知る限りInterfaceBuilder内で行うことはできません。

- (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をオーバーライドすることができますので、プログラム的に私の意見を構築することを好むだろう。

-5

しないでください。インターフェイスビルダを使用します。

+0

ダウンレーティングはやや厳しいですが、私はそれが素晴らしい答えではないことに同意します。重要なカスタマイズのためにInterface Builderはあまりにも不器用であることがわかりました。それは価値があるよりもトラブルです。 – Amagrammer

0

本当に表示されていませんか?ボタンの背景色を何かに設定してみてください...

+0

私はsetBackgroundColorでボタンの背景色を変更しようとしましたが、違いはありませんでした。 – quano

+0

ウィンドウを表示した後にボタンを追加しようとしたら、どうなりますか? – Daniel

+0

代わりにウィンドウに追加しようとしましたが、それを見ることができます。それは単なる矩形であり、インタラクティブではありません。 – quano

1

[UIButton buttonWithType: UIButtonTypeCustom][UIButton buttonWithType: UIButtonTypeRoundedRect]

であなたのボタンを作成してみてください、私はそれらが多くの良い仕事を見つけます。彼らは確かにはるかに自己文書化しています。

関連する問題