如何在 UITableView 中设置 Section 属性?
How do I set Section attributes in UITableView?
背景
我想在 UITabelLabelCell 中设置 Section 属性。
原文Post有过时Obj-CCode/approach低于
这是为 UITable 中的 headers 部分设置字体的代码。我正在尝试将此代码用于 iOS7+。
Obj-C代码
[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setFont:[UIFont fontWithName:@"MyFont" size:8]];
我觉得应该是这个样子(不确定):
UILabel.appearanceForTraitCollection( trait: UITraitCollection )
但我在转录 UITraitCollection
.
时遇到问题
编辑:iOS7+
的最佳当前解决方案
在您的 UITableViewDelegate 中实现一个 tableView 方法:
func tableView(tableView: UITableView, willDisplayHeaderView view: UIView,
forSection section: Int) {
// Background color
view.tintColor = UIColor.blackColor()
// Text Color/Font
let header = view as UITableViewHeaderFooterView
header.textLabel.textColor = UIColor.greenColor()
header.textLabel.font = my_font // put the font you want here...
}
原始 POST 下面(过时的 hacky 解决方案)
调查
搜索有关该主题的 Apple 文档和 SO 问答,我无法弄清楚如何使用 UITraitCollection
。
不过,我似乎在 this post in SO 中发现了一个可能的破解方法。
我已经用下面的实现对其进行了测试,它似乎可以工作。
我们需要采取三个步骤来创建一个 Objective-C class 方法来完成这项工作。使用桥接 headers,我们可以无缝地调用来自 Swift 的方法。
添加到桥接 Header
#import "BridgeAppearance.h"
创建BridgeAppearance.h
@interface BridgeAppearance : NSObject { }
+ (void)setFontForUITableHeaderFooters: (UIFont*)font;
@end
创建BridgeAppearance.m
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "BridgeAppearance.h"
@implementation BridgeAppearance
+ (void)setFontForUITableHeaderFooters: (UIFont*)font
{
[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil]
setFont: font];
}
@end
背景
我想在 UITabelLabelCell 中设置 Section 属性。
原文Post有过时Obj-CCode/approach低于
这是为 UITable 中的 headers 部分设置字体的代码。我正在尝试将此代码用于 iOS7+。
Obj-C代码
[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setFont:[UIFont fontWithName:@"MyFont" size:8]];
我觉得应该是这个样子(不确定):
UILabel.appearanceForTraitCollection( trait: UITraitCollection )
但我在转录 UITraitCollection
.
编辑:iOS7+
的最佳当前解决方案在您的 UITableViewDelegate 中实现一个 tableView 方法:
func tableView(tableView: UITableView, willDisplayHeaderView view: UIView,
forSection section: Int) {
// Background color
view.tintColor = UIColor.blackColor()
// Text Color/Font
let header = view as UITableViewHeaderFooterView
header.textLabel.textColor = UIColor.greenColor()
header.textLabel.font = my_font // put the font you want here...
}
原始 POST 下面(过时的 hacky 解决方案)
调查
搜索有关该主题的 Apple 文档和 SO 问答,我无法弄清楚如何使用 UITraitCollection
。
不过,我似乎在 this post in SO 中发现了一个可能的破解方法。
我已经用下面的实现对其进行了测试,它似乎可以工作。
我们需要采取三个步骤来创建一个 Objective-C class 方法来完成这项工作。使用桥接 headers,我们可以无缝地调用来自 Swift 的方法。
添加到桥接 Header
#import "BridgeAppearance.h"
创建BridgeAppearance.h
@interface BridgeAppearance : NSObject { }
+ (void)setFontForUITableHeaderFooters: (UIFont*)font;
@end
创建BridgeAppearance.m
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "BridgeAppearance.h"
@implementation BridgeAppearance
+ (void)setFontForUITableHeaderFooters: (UIFont*)font
{
[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil]
setFont: font];
}
@end