今天收到个问题,老大让我修改UISearchBar cancelButton的样式本来以为很简单的一个活,没想到让我长知识了。
开始在网上搜到的方法和我想象的一样,通过遍历Subviews获得button 然后修改,可是后来发现这个方法并不实用,这个只是在一直都存在cancelButton有
效果,其他时间就是白搭,于是转战stackoverflow 就有了收获,在iOS5+ 7-的时候用下面几种方法就可以解决了
1.这个方法时候先看到的
[[UIButton appearanceWhenContainedIn:[UISearchBar class], nil] setTitleColor:[UIColorblueColor] forState:UIControlStateNormal];
2.随后看到有人说上面的方法并不好 然后给出了下面的方法
UIBarButtonItem *searchBarButton = [UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil];
[searchBarButton setBackgroundImage:myCancelButtonImageNormal forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[searchBarButton setBackgroundImage:myCancelButtonImageHighlighted forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
[searchBarButton setTitleTextAttributes:barButtonTitleTextAttributesNormal forState:UIControlStateNormal];
[searchBarButton setTitleTextAttributes:barButtonTitleTextAttributesHighlighted forState:UIControlStateHighlighted];
大家可以都试一下 我试过了第一个 是可以满足需求的