2012年12月25日火曜日

UISearchBar 外観のカスタマイズ

こんな感じで悪くない。


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


実装は 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カスタマイズ手法はよくみかける。パターン化されてきた感じ。




0 件のコメント:

コメントを投稿