Objective-C样式的样式

时间:2014-03-07 06:08:30

标签: ios iphone objective-c

为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]];

1 个答案:

答案 0 :(得分:1)

我相信您使用的方法完全没问题。它也被Apple本身用于相同的用例,查看doc

  

注意: Cocoa和Cocoa Touch包含了一些类别   主要框架类。

     

字符串绘制功能   实际上已经在本章的介绍中提到了   通过OS X的NSStringDrawing类别为NSString提供,其中   包括drawAtPoint:withAttributes:和   drawInRect:withAttributes:方法。对于iOS,UIStringDrawing   category包括drawAtPoint:withFont:和方法   drawInRect:withFont:

如您所见,它们使用相同的模式来扩展NSString的绘制行为。