自定义UITableCell文本标签旋转后位置错误

时间:2015-07-15 21:34:32

标签: ios objective-c uitableview

我有一个自定义表格视图单元格,带有一个额外的文本字段文本视图。 我添加了自动布局约束。单元格的文本标签布局在纵向模式下似乎很好,但是当旋转时,文本标签移动到单元格的中心(文本视图后面),直到我点击并键入文本视图,标签被调整到了正确的位置。

·H

@interface MTTextViewCell : UITableViewCell

- (id)initWithLabelTextForView:(NSString *)labelTextForView;

@property (nonatomic, strong) UITextView *cellTextView;


@end

的.m

#import "MTTextViewCell.h"

@implementation MTTextViewCell

- (id)initWithLabelTextForView:(NSString *)labelTextForView {
    self = [super init];

    if(self) {
        //1.    Setup existing cell elements.
        self.textLabel.translatesAutoresizingMaskIntoConstraints = NO;
        self.textLabel.text = labelTextForView;
        self.selectionStyle = UITableViewCellSelectionStyleNone;

        //2.    Setup custom cell elements.
        _cellTextView = [[UITextView alloc] init];
        _cellTextView.translatesAutoresizingMaskIntoConstraints = NO;
        _cellTextView.backgroundColor = [UIColor grayColor];

        [self.contentView addSubview:_cellTextView];
        self.autoresizesSubviews = YES;

        //Local variables for the purposes of autolayout language and macros.
        UIView *alTextLabel = self.textLabel;
        UIView *alCellTextView = _cellTextView;
        NSDictionary *alViewDictionary = NSDictionaryOfVariableBindings(alTextLabel, alCellTextView);

        //Horizontal layout constraints.
        [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-[alCellTextView]-|"
                                                                                options:0
                                                                                metrics:nil
                                                                                  views:alViewDictionary]];
        //Vertical layout constraints.
        [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[alTextLabel(20.0)]-[alCellTextView]-|"
                                                                                 options:NSLayoutFormatAlignAllLeft
                                                                                 metrics:nil
                                                                                   views:alViewDictionary]];
    }

    return self;
}

这也偶尔发生在使用文本字段的类似单元格中 以及分段控制。 见screencap:

screenshot showing wrong position of text label

我使用的是Xcode版本6.4,iOS SDK 8.4 任何建议或指示表示赞赏!感谢。

1 个答案:

答案 0 :(得分:0)

检查横向模式下高度是否与手机的最大高度相加。它可能会增加到现在的高度