iphone - 重用 UILabel 样式的正确方法是什么?

标签 iphone ios objective-c uilabel

我有几个具有相同视觉处理的UILabel。我不想每次都重新定义每个属性,而是考虑只复制实例并更改文本。应该这样做吗?

另一种方法是创建工厂方法,但我不太喜欢这个想法。

最佳答案

如果你愿意学习Three20,你可以使用TTLabel类,它与Three20的样式表系统结合在一起,基本上是为了解决你的问题而设计的。然而,我个人在解析 Three20 的所谓文档时遇到了麻烦,所以我认为学习使用这个库只是为了解决你的问题是很大的开销。

我解决这个问题的方法是组合一个迷你工厂方法,如下所示:

// Example:
- (UILabel *)makeLabel {
  UILabel *label = [[[UILabel alloc] init] autorelease];
  label.backgroundColor = [UIColor clearColor];
  label.font = [UIFont systemFontOfSize:kMyFontSize];
  label.textColor = [UIColor blueColor];
  label.textAlignment = UITextAlignmentCenter;
  [self.view addSubview:label];
  return label;
}

然后当我使用这个方法时,其他代码变得更干净:

UILabel *nameLabel = [self makeLabel];
nameLabel.text = userName;
UILabel *titleLabel = [self makeLabel];
titleLable.text = myTitle;
// Both labels have consistent style.

PengOne 建议对 UILabel 进行子类化。这是一个选择,尽管我认为这个工厂方法可以用更少的工作完成这项工作。

关于iphone - 重用 UILabel 样式的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6542433/

相关文章:

将在推文中预填充媒体的 iOS Twitter URL Scheme

ios - 持久化指向对象的指针

iphone - 使用 searchBar 搜索并显示 google 结果 :textDidChange:

iPhone 应用程序代码签名

iphone - UIButton titleLabel 行数在 iOS5 上工作正常但在 iOS4.3 上不工作

ios - 检测 iPhone 上的应用程序安装失败

ios - UITableViewController 返回到单元格中的下一个文本字段

php - 如何在几秒钟内发送数百万个苹果推送通知,如 Urban Airship

ios - [UIViewAnimationStateanimationDidStop :finished:]: message sent to deallocated instance

ios - 无障碍订单IOS