こんな感じで悪くない。

あらかじめ用意した背景画像を使っている。フォントまで専用に用意されていた。

実装は UISearchBar のサブクラスを作り、サブビューとしてUIImageViewを貼りつけておく。
そして layoutSubviews をオーバーライドして UITextFieldを見つけ出し、表現をカスタマイズする。
- (void)layoutSubviews {
[self setShowsCancelButton:NO animated:NO];
UITextField *searchField;
NSUInteger numViews = [self.subviews count];
for(int i = 0; i < numViews; i++) {
if([[self.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) { //conform?
searchField = [self.subviews objectAtIndex:i];
}
}
[self bringSubviewToFront:searchField];
if(!(searchField == nil)) {
searchField.textColor = [self colorWithHex:0x8b909c];
searchField.font = [UIFont fontWithName:@"MyriadPro-It" size:18];
:
最近この「サブクラスでlayoutSubviewsをオーバライドする」UIカスタマイズ手法はよくみかける。パターン化されてきた感じ。


