make UItextfield to function like UISearchBar

ios, iphone, uisearchbar

Solution

you can change the `UISearchBar` background using this bellow code..

for (UIView *subview in searchBar.subviews) {
        if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
            UIView *bg = [[UIView alloc] initWithFrame:subview.frame];
            bg.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"SkyBackground.jpeg"]];
            [searchBar insertSubview:bg aboveSubview:subview];
            [subview removeFromSuperview];
            break;
        }
    }

From this code you can set image or anything else for background of `UISearchBar`.

Also see my this answer with some other functionality to change the searchbar component layout..How to change inside background color of UISearchBar component on iOS

UPDATE:

for change the Cancel button appearance use this bellow code...

   UIButton *cancelButton = nil;

    for(UIView *subView in searchBar.subviews)
    {
        if([subView isKindOfClass:[UIButton class]])
        {
            cancelButton = (UIButton*)subView;
            //do something here with this cancel Button
        }
    }

Problem

I want to change the looks of `UISearchBar`: So, If there's a way by which I can make my `UITextField`(in a custom background for search) to function like `UISearchBar` ? or subclassing and overriding the `- (void)layoutSubviews` is the only way ? Kindly tell How to subclass it !!!

Original source

Related problems