gpt4 book ai didi

swift - 如何在 UITableView 中设置 Section 属性?

转载 作者:行者123 更新时间:2023-11-28 10:01:47 24 4
gpt4 key购买 nike

背景

我想在 UITabelLabelCell 中设置 Section 属性。

下面是带有过时 Obj-C 代码/方法的原始帖子

这是为 UITable 中的节标题设置字体的代码。我正在尝试将此代码用于 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...
}

下面是原始帖子(过时的 hacky 解决方案)

调查

搜索有关该主题的 Apple 文档和 SO Q&A,我无法弄清楚如何使用 UITraitCollection

但是,我似乎在 this post in SO 中发现了一个可能的 hack .

我已经用下面的实现对其进行了测试,它似乎可以工作。

我们需要采取三个步骤来创建一个 Objective-C 类方法来完成这项工作。使用桥接 header ,我们可以无缝地从 Swift 调用该方法。

添加到桥接头

#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

关于swift - 如何在 UITableView 中设置 Section 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27766041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com