为iOS应用创建UI对象的可重用样式的最佳方法是什么?
E.g。我想为每个UITextField使用相同的样式 - 顶部/底部线,并考虑创建一个类别以提供样式并简单地将其应用于View Controller。
有没有更好的解决方案呢?
的UITextField + TextFieldStyler.m
- (void)addTopBorderWithColor:(UIColor *)color
{
CGRect topBorderFrame = CGRectMake(0, 0, self.bounds.size.width, 1.0);
UIView *topBorder = [[UIView alloc] initWithFrame:topBorderFrame];
topBorder.backgroundColor = color;
[self addSubview:topBorder];
}
PXRLoginViewController.m
[self.nameFIeld addTopBorderWithColor:[UIColor whiteColor]];
[self.passwordField addTopBorderWithColor:[UIColor whiteColor]];
答案 0 :(得分:1)
我相信您使用的方法完全没问题。它也被Apple本身用于相同的用例,查看doc
注意: Cocoa和Cocoa Touch包含了一些类别 主要框架类。
字符串绘制功能 实际上已经在本章的介绍中提到了 通过OS X的NSStringDrawing类别为NSString提供,其中 包括drawAtPoint:withAttributes:和 drawInRect:withAttributes:方法。对于iOS,UIStringDrawing category包括drawAtPoint:withFont:和方法 drawInRect:withFont:
如您所见,它们使用相同的模式来扩展NSString的绘制行为。