2010-12-20 21 views
0

ボタンのクリックでメインビューのサブビューとしてnibファイルのビューを追加したいのですが、フレーム(0,108,320,351)内にある必要があります。私は、次のコードを試してみた:nibからフレームにロードされたサブビューを追加します

-(IBAction) displayJoinmeetup:(id)sender 
{ 
    [meetups removeFromSuperview]; //removing the older view 
    CGRect myFrame = CGRectMake(0, 108,320,351); 
    [joinmeetup initWithFrame:myFrame]; //joinmeetup declared in header file as IBoutlet UIView*joinmeetup  
    [self.view addSubview:joinmeetup];  
} 

これは私がフレームを削除する場合はそれ以外のサブビューディスプレイは画面全体をカバーする、唯一の空白の画面を表示し、どのように私はこれを適切に行うことができますか?

答えて

2

あなたは、initを呼び出してはなりません...オブジェクトの上に、それが作成された後。あなたが設定を変更することができれば、そのための設定があります。この場合、それはsetFrameです:

-(IBAction) displayJoinmeetup:(id)sender { 
    [meetups removeFromSuperview]; //removing the older view 
    CGRect myFrame = CGRectMake(0, 108,320,351); 
    [joinmeetup setFrame:myFrame]; //joinmeetup declared in header file as IBoutlet UIView*joinmeetup  
    [self.view addSubview:joinmeetup];  
} 
+0

は、それが正しく働いていたあなたに感謝します! – sujith1406

0

nibからロードされたビューに対してinitWithFrameが呼び出されません。詳細については、UIViewクラスrefを参照してください。 インターフェイスビルダ(インスペクタ)でビューサイズプロパティを設定する必要があります。

0

あなたは次のようにTHIを試すことができます。

-(IBAction) displayJoinmeetup:(id)sender 
{ 
if(meetups) 
{ 
[meetups removeFromSuperview]; //removing the older view 
//also here you should release the meetups, if it is allocated 
meetups = nil; 
} 

UIView *tempView = [[UIView alloc] initWithFrame:CGRectMake(0, 108,320,351)]; 
joinmeetup = tempView; 
[tempView release]; 
[self.view addSubview:joinmeetup]; 

} 
0

私はあなたがこれを試してみてくださいお勧め:

[joinmeetup setFrame:CGRectMake(0, 108,320,351)]; 
[self.view addSubview:joinmeetup]; 
+0

frameはUIViewで宣言されたプロパティです –

関連する問題