Customizing search bar in iPhone application Development

后端 未结 5 665
梦如初夏
梦如初夏 2021-02-06 17:34

In my application I have to add a search bar at the head of the tableview. I am able to add the searchbar but problem is without adding default search bar of ios can i add my cu

5条回答
  •  无人及你
    2021-02-06 18:10

    you can subclass the UISearchBar and override the layoutSubviews method :

    - (void)layoutSubviews {
       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];
          }
       }
       if(!(searchField == nil)) {
           searchField.textColor = [UIColor whiteColor];
           [searchField setBackground: [UIImage imageNamed:@"yourImage.png"] ];
           [searchField setBorderStyle:UITextBorderStyleNone];
       }
    
       [super layoutSubviews];
    }
    

    Also you can :

    //to clear searchbar backgraound
    - (void) clearSearchBarBg
    {
        for (UIView *subview in theSearchBar.subviews) 
        {
            if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) 
            {
                [subview removeFromSuperview];
                break;
            }
        }
    }
    
    //display showSearchButtonInitially in a keyboard 
    - (void)showSearchButtonInitially
    {
        UIView * subview;
        NSArray * subviews = [theSearchBar subviews];
    
        for(subview in subviews)
        {
            if( [subview isKindOfClass:[UITextField class]] )
            {
                NSLog(@"setEnablesReturnKeyAutomatically");
                [((UITextField*)subview) setEnablesReturnKeyAutomatically:NO];
                ((UITextField*)subview).delegate=self;
                [((UITextField*)subview) setEnabled:TRUE];
                ((UITextField*)subview).borderStyle = UITextBorderStyleNone;
                break;
            }
        }
    }
    

提交回复
热议问题