前回は、UITextViewに枠線・角丸・影を付けた。
今回は、UITextField の角丸(borderStyle:UITextBorderStyleRoundedRect)と同じような見た目に変更してみる。
まずは、非常にシンプルな方法から…
UITextViewの下にUITextFieldを重ねて配置するだけ。
↓こんな感じ(※UITextViewの背景色を青に変えてあります)
はじめは Interface Builder だけで作ろうと思ったが、UITextField の高さを変更するときに、「30」に固定されていて変更できなかった
(角丸以外の場合は変更できたのに…(ノω;`))
仕方なくプログラムで書くことに…
UITextView *view = [[UITextView alloc] initWithFrame:CGRectMake(50, 50, 200, 50)]; view.backgroundColor = [UIColor blueColor]; UITextField *field = [[UITextField alloc] init]; // UITextView より少し大きめのサイズに設定 field.frame = CGRectInset(view.frame, -5, -5); // 角丸のスタイル field.borderStyle = UITextBorderStyleRoundedRect; // UITextField への入力は不要なため無効に設定 field.enabled = NO; [self.view addSubview:field]; [self.view addSubview:view];
見た目だけのために View が1つ増えてしまいますが、ひとまず完成!
次は UITextView の drawRect メソッドをオーバーライドして作ってみる!?
ピンバック: UITextView の見た目を変更する(3) | UB Lab.