我已经越来越不可靠的结果,同时尝试应用UIAppearance代理样式UILabel类代理。 例如,下面的工程,我期望:
[[UILabel appearance] setFont:[UIFont fontWithName:SOME_FONT size:SOME_SIZE]];
[[UILabel appearance] setShadowColor:[UIColor blackColor]];
设置文字颜色不工作,但是,这样的:
[[UILabel appearance] setColor:[UIColor greenColor]];
确实工作。 种类 。 这有点不可靠,导致任何特定实例的调用setTextColor:
被忽略。
什么是UIAppearance样式应用到一个UILabel正确的方法是什么?
好了,事实证明,你不能使用样式的任何性质的UILabel UIAppearance
代理。
虽然UILabel
类符合UIAppearanceContainer
协议,UILabel.h的检查显示,没有它的性能都标有UI_APPEARANCE_SELECTOR
,对于使用的前提UIAppearance
。
开溜。
我有子类的UILabel
@interface SmallLabel : UILabel
@end
@implementation SmallLabel
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
}
return self;
}
@end
然后我用appearanceWhenContainedIn:
UIFont *smallFont = [UIFont fontWithName:@"Arial" size:15];
[[SmallLabel appearanceWhenContainedIn:[UIView class], nil] setFont:smallFont];
这适用于使用所需的字体在我的应用SmallLabels。 我只需要自定义类设置为SmallLabel在Xcode身份检查。 它似乎并没有工作,标签编程创建,只有那些在发钞银行。
经过进一步测试这种方法并不总是可靠地工作。
在斯威夫特你做下面的自定义包含在UITableViewHeaderFooterView当一个UILabel的外观属性:
UILabel.appearance(whenContainedInInstancesOf: [UITableViewHeaderFooterView.self]).font = UIFont.boldSystemFont(ofSize: 18)
UILabel.appearance(whenContainedInInstancesOf: [UITableViewHeaderFooterView.self]).textColor = .white
这将适用于为textLabel属性,当你在使用UITableViewHeaderFooterView:
public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
var headerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: headerViewId)
if headerView == nil {
headerView = UITableViewHeaderFooterView(reuseIdentifier: headerViewId)
}
headerView?.textLabel?.text = "My Header".uppercased()
return headerView
}
使用UITableViewStyle.grouped时,那些节头观点似乎与默认样式覆盖,即使你自定义UITableViewHeaderFooterView.textLabel在viewForHeaderInSection这确实有助于
下面的代码为我工作迅速使用2.2和适用于iOS 9.0
let textFieldInsideSearchBar = self.searchBar?.valueForKey("searchField") as? UITextField
textFieldInsideSearchBar?.textColor = BCGConstants.Colors.darkBluishPurpleColor()
let textFieldInsideSearchBarLabel = textFieldInsideSearchBar!.valueForKey("placeholderLabel") as? UILabel
textFieldInsideSearchBarLabel?.textColor = UIColor(red: 220/255, green: 209/255, blue: 231/255, alpha: 1.0)`enter code here`