gpt4 book ai didi

带有静态 TableView 单元格的 IOS 8 动态类型 - 基本和副标题

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:07 25 4
gpt4 key购买 nike

在设置中更改文本大小并返回到应用程序后,Basic 和 Subtitle 类型的静态单元格保持空白,直到您离开 View 或重新加载应用程序。自定义静态单元格保留其文本。

易于复制。

创建一个单 View 应用程序,将 UIViewController 替换为 UiTableViewController。将内容从动态单元格更改为静态单元格。

设置样式单元格 0 = 自定义,单元格 1 = 基本和单元格 2 = 副标题

连接所有属性

@property (weak, nonatomic) IBOutlet UILabel *customCell;
@property (weak, nonatomic) IBOutlet UILabel *basicCell;
@property (weak, nonatomic) IBOutlet UILabel *titleLabel;
@property (weak, nonatomic) IBOutlet UILabel *subTitleLabel;

将以下内容添加到viewDidLoad

NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];
[defaultCenter addObserver:self selector:@selector(updateInterfaceForDynamicTypeSize) name:UIContentSizeCategoryDidChangeNotification object:nil];


self.customCell.text = @"Custom Cell";
self.basicCell.text = @"Basic Cell";
self.titleLabel.text = @"My Title";
self.subTitleLabel.text = @"My Sub Title";

添加如下方法

-(void)updateInterfaceForDynamicTypeSize {
UIFont *font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
self.customCell.font = font;
self.basicCell.font = font;
self.titleLabel.font = font;
font = [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote];
self.subTitleLabel.font = font;
[self.tableView reloadData];
}

运行应用程序 - 然后转到“设置”并更改文本大小。返回应用程序,仅显示自定义单元格内容。

IOS 7 不是这种情况。我是否遗漏了什么或者这是一个错误?

最佳答案

在 Storyboard中配置您的单元格以使用自定义类而不是默认的 UITableViewCell

简单的自定义单元实现如下:

// DynamicTypeResistantCell.h
#import <UIKit/UIKit.h>
@interface DynamicTypeResistantCell : UITableViewCell

@end


// DynamicTypeResistantCell.m
@implementation DynamicTypeResistantCell
- (void)_systemTextSizeChanged
{
// don't call super!
}
@end

然后您可以安全地使用 Basic 和 Subtitle 样式,并且单元格在动态类型大小更改后保留其内容。

关于带有静态 TableView 单元格的 IOS 8 动态类型 - 基本和副标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26314131/

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