私はiOS 5アプリケーションを開発しています。私は、デフォルトビューを使用して、プログラムによってUIViewのサイズを変更したいと思います。これはcardViewという名前のビューです。UILabelとUIViewがviewDidAppearでサイズ(0、0)を返します
@interface ThreeCardsViewController : UIViewController
{
...
IBOutlet UIView* cardView;
...
}
@property (nonatomic, retain) IBOutlet UIView* cardView;
...
viewDidAppear
内のメソッドにメッセージを送信すると、そのカードのサイズは0x0になります。
@implementation ThreeCardsViewController
...
@synthesize cardView;
...
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self setUpViews];
}
- (void) setUpViews
{
...
futureCardState.cardViewY =
[self computeDescriptionViewPosWith:futureCardState.cardViewSize];
...
[self showCard:pastCardState];
}
- (CGFloat) computeDescriptionViewPosWith:(CGSize)newDescriptionViewSize
{
CGFloat newY;
newY = cardView.frame.size.height - newDescriptionViewSize.height;
return newY;
}
すべてのビューまたはuilabelsのサイズは(0、0)です。
私はこの見解は、私が(0、0)を取得していますなぜあなたは知っていますInterface Builderの
を使用して、XIBに接続されていると確信していますか?この初期化はどこで行えますか?
「setUpView」のコードを表示します。また、必ず 'super'の' viewDidAppear: 'を呼び出すようにしてください。 – mattjgalloway
あなたはcardViewを合成していますか? – Maulik
新しい内容で質問を更新しました。 @mattjgalloway、[super viewDidAppear:...]を追加しましたが、まだ動作しません。 – VansFannel