2014年9月26日 星期五

[iOS] iOS 7&8 UISearchBar 去除背景的方法

UISearchBar 在 iOS 的不同版本中,把 subviews 列出來看會發現 view 層次結構不同,而要去除背景主要是將 UISearchBarBackground 給 remove 掉,因此就要針對各個 iOS 的版本做點調整,如下所示:

for (UIView *view in self.searchBar.subviews)
{
    iOS 7 以前:
    if ([view isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
    {
        [view removeFromSuperview];
        break;
    }

    iOS 7 含以後:
    if ([view isKindOfClass:NSClassFromString(@"UIView")] && view.subviews.count > 0)
    {
        for (UIView *subView in view.subviews)
        {
            if ([subView isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
            {
                [subView removeFromSuperview];
                break;
            }
        }
    }
}

沒有留言:

張貼留言