UITextField
を使用しています。高さを増やしたいのですが、これを行うためのプロパティが見つかりません。どうすればこれを達成できますか?
CGRect frameRect = textField.frame;
frameRect.size.height = 100; // <-- Specify the height you want here.
textField.frame = frameRect;
丸みのある四角形の境界線スタイルの高さは変更できません。高さを設定するには、Xcodeで丸い境界線以外の境界線スタイルを選択します。
私はついにこの修正を見つけました!
私たちが見つけたように、IBでは、角の丸い境界線スタイルの高さを変更することはできません。そのため、他のスタイルに変更し、希望の高さを設定します。コードで境界線スタイルを元に戻します。
textField.borderStyle = UITextBorderStyleRoundedRect;
自動レイアウトを使用している場合は、ストーリーボードで実行できます。
テキストフィールドに高さ制約を追加し、高さ制約定数を任意の値に変更します。手順は次のとおりです。
ステップ1:テキストフィールドの高さ制約を作成する
ステップ2:高さの制約を選択する
ステップ3:高さ制約の定数値を変更する
これら2つの簡単な手順に従って、UItextField
の高さを増やします。
ステップ1: XIBファイルを右クリックし、「ソースコード」のように開きます。
ステップ2:同じUITextfield
ソースを見つけて、必要に応じてフレームを設定します。
これらの手順を使用して、Appleコントロールのフレームを変更できます。
IOS 6の更新:自動レイアウトを使用して、インターフェイスビルダーのサイズインスペクターからUITextFieldの高さを設定できない場合でも(少なくともXcode 4.5 DP4の時点で)、高さの制約を設定できるようになりましたこれは、Interface Builderから編集できます。
また、コードでフレームの高さを設定している場合、ビューにある他の制約に応じて自動レイアウトがリセットする場合があります。
これは古い質問ですが、IB内からUITextFieldの高さを簡単に変更し、そのUITextfieldの境界タイプをデフォルトの角丸タイプ以外に変更したい場合に追加したいだけです。その後、エディター内から簡単に高さ属性をストレッチまたは変更できます。
@IBDesignable
class BigTextField: UITextField {
override func didMoveToWindow() {
super.didMoveToWindow()
if window != nil {
borderStyle = .roundedRect
}
}
}
UITextField
をBigTextField
に置き換えます。Border Style
をnone
に変更します。この愚かな問題への私の哀れな貢献。 IBでスタイルをnoneに設定して高さを設定し、次にIBでクラスをUITextField
のサブクラスに設定して、スタイルを強制的に四角形に丸めます。
@interface JLTForcedRoundedRectTextField : UITextField
@end
@implementation JLTForcedRoundedRectTextField
- (void)awakeFromNib
{
self.borderStyle = UITextBorderStyleRoundedRect;
}
@end
XIBファイルをハッキングしたり、View Controllerにスタイルコードを記述したりする必要がなくなりました。
UITextFieldの高さは、デフォルトの丸い角の境界線スタイルがある場合にのみ属性インスペクターで調整できませんが、高さ制約(および自動レイアウトシステムを満たすために必要なその他の制約-多くの場合、単に欠落している制約の追加を使用して)を追加し、制約を調整すると、テキストフィールドの高さが調整されます。制約が必要ない場合は、制約を削除して(制約をクリア)、テキストフィールドを調整された高さのままにします。
魅力のように機能します。
これは非常に簡単です。
yourtextfield.frame = CGRectMake (yourXAxis, yourYAxis, yourWidth, yourHeight);
テキストフィールドをグローバルプロパティとして宣言し、コード内の任意の場所でフレームを変更します。
ハッピーコーディング!
Swift 3では次を使用します。
yourTextField.frame.size.height = 30
多数のUITextFields
を作成している場合は、UITextView
sをサブクラス化し、setFrameメソッドを次のようにオーバーライドする方が簡単です。
-(void)setFrame:(CGRect)frame{
[self setBorderStyle:UITextBorderStyleRoundedRect];
[super setFrame:frame];
[self setBorderStyle:UITextBorderStyleNone];
}
この方法で、あなたはただ電話することができます[customTextField setFrame:<rect>];
これを試して
UITextField *field = [[UITextField alloc] initWithFrame:CGRectMake(20, 80, 280, 120)];
テキストフィールドのフレームプロパティを使用して、フレームを変更できますLike-Textfield.frame = CGRECTMake(x axis、y axis、width、height)
UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
[txt setText:@"Ananth"];
[self.view addSubview:txt];
最後の2つの引数は幅と高さです。必要に応じて設定できます...
私は同じ問題を抱えていました。ここでいくつかの解決策を試してみましたが、このすべてのジャンボジャンボを行うのではありません。高さの制約を設定するだけで十分だとわかりました。