2011-12-21 10 views
5

次のコードを含むビューを作成する。プログラムによるプログラミングの作成

- (void)loadView { 

paintView=[[UIView alloc]initWithFrame:CGRectMake(0, 50, 320, 430)]; 
[paintView setBackgroundColor:[UIColor yellowColor]]; 
self.view = paintView; 
[paintView release]; 

しかし、私の問題は、画面全体が黄色で塗りつぶされていますが、指定されたフレームで欲しいです。 ビューベースのアプリケーションでこのビューを作成しています。間違ったことをしていますか?元のビューを上書きしますか?

+0

が、私は、Y軸に50から始めています。 – NoviceDeveloper

+0

なぜpaintViewをself.viewに割り当てるのですか self.view = paintView; – Aadil

答えて

20

次のようにすることができます。

- (void)loadView { 
    /// make a empty view to self.view 
    /// after calling [super loadView], self.view won't be nil anymore. 
    [super loadView]; 

    paintView=[[UIView alloc]initWithFrame:CGRectMake(0, 50, 320, 430)]; 
    [paintView setBackgroundColor:[UIColor yellowColor]]; 
    [self.view addSubview:paintView]; 
    [paintView release]; 
    }; 
+0

このメソッドのカスタム実装はsuperを呼び出すべきではありません。ビューの追加初期化を実行するには、viewDidLoadメソッドで行います。 –

+0

@Alexey、おそらくあなたの場合あなたはカスタムの 'loadView'を実装する必要はありません。そして、この回答は古いものです.iOS SDK 4/5では、この答えは正しいです。[super loadView]は' self.view'に空のビューを生成します現在iOS 7で動作しているかどうかわからない – AechoLiu

+1

コードに入力ミスがあり、答えを編集できません。このメソッドは "addSubview"ではなく "addSu bView "を選択します。 –

0

私はあなたがそれを直接assigingに代わり、メインビューにサブビューを追加する必要があり、loadViewメソッドメソッドではありません3変更ラインをつもりです

[self.view addSubview: paintView]; 
+0

成功しません....アプリケーションがクラッシュします:( – NoviceDeveloper

+2

あなたはur loadviewで[super loadView]を見逃していましたが、これを追加するとアプリケーションがクラッシュしません。 – iCoder4777

+0

yup .. done..thnks – NoviceDeveloper

0

self.view =paintView; を交換してください。

[self.view addSubview:paintview]; 
0
UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,35)]; 
newView.backgroundColor=[UIColor clearColor]; 
UITextView *mytext = [[UITextView alloc] initWithFrame:CGRectMake(5.0, 0.0, 100.0, 28.0)]; 
mytext.backgroundColor = [UIColor clearColor]; 
mytext.textColor = [UIColor blackColor]; 
mytext.editable = NO; 
mytext.font = [UIFont systemFontOfSize:15]; 
mytext.text = @"Mytext"; 
mytext.scrollEnabled=NO; 
[mytext release]; 
[newView addSubview:mytext]; 
[self.view addSubview:newView]; 
関連する問題