UITableViewセルをサブクラス化し、プログラムでUITextFieldを追加したいと思います。テキストフィールドの作成方法を理解しました。ただし、デバイスが回転したときにサイズを変更するのに問題があります。これが私のコードです(これself
はUITableViewCellサブクラスであることに注意してください)
self.myTextField = [[UITextField alloc] init];
self.myTextField.frame = CGRectMake(400, 6,TEXT_FIELD_WIDTH ,TEXT_FIELD_HEIGHT);
[self addSubview:self.myTextField];
self.myTextField.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin;
私が欲しいのは、向きに関係なく、テキストフィールドが画面の中央付近(ポイント400付近)にx原点を持ち、画面の右端との距離を維持し、それ以外の場合は幅を拡大することです(柔軟な左マージン) )。
これは、行をコメントアウトしてautoresizingMask
デバイスを縦向きで起動した場合に正常に機能します。ただし、autoresizing
行を追加し直すと、テキストフィールドがポイント400、EVENINPORTRAITから離れます。
助言がありますか?コンテンツビューにテキストフィールドも追加しようとしましたが、何も変更されていないようです。
編集:私はlayoutsubviewsメソッドを使用することを考えましたが、さまざまな座標の全体をハードコーディングする必要があるため、これはちょっと粗雑に思えます。したがって、これを行う別の方法がある場合は、それが優先されます。
編集:たとえば、テキストフィールドを中央付近から開始するには、フレームxOriginを約150にする必要があります。