0

我在 Xcode 中使用单个 UITableViewController 创建了一个新的单视图项目(使用故事板)。这是设置代码:

- (void)viewDidLoad {
    [super viewDidLoad];

    _footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 44, 44)];
    _footerView.autoresizingMask = UIViewAutoresizingFlexibleWidth;

    UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(60, 0, 44, 44)];
    l.text = @"Label Label Label Label Label Label Label Label Label";
    l.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth;
    l.backgroundColor = [UIColor clearColor];

    [_footerView addSubview:l];

    _footerView.backgroundColor = [UIColor lightGrayColor];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 1;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return _footerView.frame.size.height;
}

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    return _footerView;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    return [tableView dequeueReusableCellWithIdentifier:@"Cell"];
}

我希望在 x = 60 处绘制自定义表格页脚视图中的标签,但是当我运行项目时,起初标签是不可见的(纵向,附加屏幕)。然后,如果我旋转一次,它变得可见,如果我旋转回纵向,它是可见的。

我错过了什么?

标签不可见 景观

4

1 回答 1

0

您似乎正在使用 44px 的宽度和高度初始化您的页脚视图,但将标签添加到其边界之外。

请尝试以下操作:

_footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.tableView.frame), 44)];

_footerView.autoresizingMask = UIViewAutoresizingFlexibleWidth;

UILabel *l = [[UILabel alloc] initWithFrame:CGRectInset(_footerView.bounds, 60.0f, 0.0f)];
l.text = @"Label Label Label Label Label Label Label Label Label";
l.autoresizingMask = UIViewAutoresizingFlexibleWidth;
l.backgroundColor = [UIColor clearColor];

[_footerView addSubview:l];

_footerView.backgroundColor = [UIColor lightGrayColor];

另外一点,[UIColor clearColor]如果可以的话,尽量不要用作标签背景颜色 - 它会显着降低滚动性能。在这种情况下,您应该使用[UIColor lightGrayColor]它以匹配其超级视图。

于 2013-01-18T13:44:29.047 回答