Ios7 使用动态类型更改用户选择的字体大小和权重时,表视图中UITextField的垂直对齐错误

Ios7 使用动态类型更改用户选择的字体大小和权重时,表视图中UITextField的垂直对齐错误,ios7,uitableview,uitextfield,xcode5,vertical-alignment,Ios7,Uitableview,Uitextfield,Xcode5,Vertical Alignment,在使用Dynamic Type更改用户选择的字体大小和权重时,我遇到了在TableView中UITextField垂直对齐的问题 由于我的英语糟糕,我会使用截图:Upps,没有足够的声誉来发布它们-( 在自定义单元格的TableView中,我使用了Autolayout。但是禁用Autolayout对我的问题并不重要。所以我认为这不会导致问题 一切看起来都很好 当我切换到“设置”并选择另一个字体大小时,返回应用程序后,UITextFields的垂直对齐已向上移动了大约5个点,具体取决于新的字体大小

在使用Dynamic Type更改用户选择的字体大小和权重时,我遇到了在TableView中UITextField垂直对齐的问题

由于我的英语糟糕,我会使用截图:Upps,没有足够的声誉来发布它们-(

在自定义单元格的TableView中,我使用了Autolayout。但是禁用Autolayout对我的问题并不重要。所以我认为这不会导致问题

一切看起来都很好

当我切换到“设置”并选择另一个字体大小时,返回应用程序后,UITextFields的垂直对齐已向上移动了大约5个点,具体取决于新的字体大小

当一个
[textField becomeFirstResponder]
时,它会移动到正确的位置:

当我关闭表单并再次打开时,一切正常!!!

源代码:

viewDidLoad

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

好的,一个小问题,但看起来不专业;-)

编辑1

文本字段上方有一个标签。此标签的对齐方式保持良好

编辑2


当在TableView中底部有不可见的单元格时,我更改字体并滚动到以前不可见的单元格,这些单元格很好!细胞的再利用是问题吗?但我看不出有什么办法可以改变这一点…

呃,我在几天后发现了它:-)

我必须添加方法估计权重,以确定路径,一切正常:

  • (CGFloat)tableView:(UITableView*)tableView估计的权重为rowatinexpath:(nsindepath*)indepath{
- (void)preferredContentSizeChanged:(NSNotification *)notification 
{
[self.tableView reloadData];
}  

- (void) configureFonts:(DetailColumnCell *)cell 
{
cell.txtDetail.font = [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline];
}
    // Do the minimal calculations required to be able to return an estimated row height that's
    // within an order of magnitude of the actual height.
    // 250 => try and error: 200.0 was enough for me at iPhone, but iPad need more
    return 250.0f;