0

3.5 インチ iPhone 用の Interface Builder にテキスト フィールドとボタンを配置しました。それがiPhone 5であるかどうか、テキストフィールドとボタンであるかどうかをプログラムで確認しています。ビューコントローラー、テキストフィールド、およびボタンで「サブビューの自動サイズ変更」をオフにしました。私が持っているコードはviewDidLoadにあり、iPhone 5の場合、行にヒットしますが、テキストフィールドまたはボタンは移動しません。

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 568)
    {
        self.chatBox.frame = CGRectMake(20,509,201,30);
        self.submitButton.frame = CGRectMake(227,504,73,39);

        [self.view addSubview:self.chatBox];
        [self.view addSubview:self.submitButton];
    }
}
4

2 に答える 2

0

ここで発生している問題は、フレームが自動レイアウトによって上書きされていることです。自動レイアウトを使用してビューのフレームを調整する前に、次のコード行を追加します。

[self setTranslatesAutoresizingMaskIntoConstraints:YES];

これにより、設定したフレームが新しい制約に変換され、更新されます。それらを制約に変換したくない場合は、明らかに、このメッセージに「NO」を渡してこれを実現してください。

于 2013-09-12T02:29:19.030 に答える