【问题标题】:iPhone iOS UILabel how to customize text color for UITableView detail text labels only?iPhone iOS UILabel如何仅为UITableView详细文本标签自定义文本颜色?
【发布时间】:2012-06-16 14:38:23
【问题描述】:

我正在制作界面原型,并且正在使用情节提要来做到这一点。原型的一部分涉及将 UITableView 单元格的详细 UILabel 设置为某种颜色。我想避免手动重新着色情节提要中的每个标签。

我发现我可以使用:

[[UILabel appearanceWhenContainedIn:[UITableViewCell class], nil] 
 setTextColor:[UIColor cyanColor]];

更改表格视图单元格中标签的外观。 有没有办法进一步细化这段代码,使其仅适用于详细的表格视图标签?目前它同时更改了 UITableViewCell 的 textLabel 和 detailTextLabel。

谢谢!

【问题讨论】:

    标签: objective-c ios colors uilabel appearance


    【解决方案1】:

    您可以通过子类化详细视图中的单元格来绕过这个问题,然后使用

    [[UILabel appearanceWhenContainedIn:[YOUR_UITableViewCell class], nil] 
     setTextColor:[UIColor other_colr]];
    

    【讨论】:

    • 我需要自定义 UITableViewCell 中的两个标签之一 - 详细标签。如果我对一个单元格进行子类化,两个标签仍会出现在该单元格中。使用自定义容器的子类化似乎太成问题,因为文本/细节标签知道如何通过调整自身大小来共享单元格中的可用空间。详细标签的自定义容器可能会禁用此功能
    • 此代码对我不起作用,导致应用程序崩溃。 [[UILabel appearanceWhenContainedIn:[UITabBarItem class], nil] setTextColor:color_app_green];因为 'UITabBarItem 不符合 UIAppearanceContainer 协议'
    【解决方案2】:

    如果您想继续使用外观代理,您必须创建一个自定义表格视图单元格和一个新标签。

    1. 在情节提要编辑器中,您将 UITableCell 的样式属性设置为“自定义”。
    2. 将两个标签拖到表格视图单元格并按照您的需要进行配置。
    3. 创建一个继承自 UITableViewCell 的新类,并为每个标签创建 IBOutlets。
    4. 在情节提要编辑器中,您将表格视图单元格的类设置为您刚刚创建的表格视图单元格类。将插座连接到标签。实际上这已经足够了,因为您也可以在情节提要中配置单元格的外观。如果您想通过代码配置标签,您还必须执行以下步骤。
    5. 创建一个继承自 UILabel 的新类并保持原样。
    6. 返回故事板编辑器并选择 detailtextlabel 并将类更改为您刚刚创建的标签类。

    如果您想了解有关如何创建自己的表格视图单元格的更多信息,请参阅Table View Programming Guide for IOS

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      相关资源
      最近更新 更多