gpt4 book ai didi

ios - 如何在旋转后更改自定义 viewForHeaderInSection 宽度

转载 作者:可可西里 更新时间:2023-11-01 05:23:30 26 4
gpt4 key购买 nike

我必须构建一个自定义 tableViewHeader,其中至少应显示两个标签,即。项目名称和项目描述。这两个标签的内容不同(即在字符串长度方面)。

我设法获得了默认设备方向(纵向)的工作版本,但如果用户将设备旋转为横向,我的自定义 headerView 的宽度未调整,用户将在右侧看到未使用的空白区域。

正在使用以下代码片段:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 50.0f;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
CGFloat wd = tableView.bounds.size.width;
CGFloat ht = tableView.bounds.size.height;
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0., 0., wd, ht)];
headerView.contentMode = UIViewContentModeScaleToFill;
// Add project name/description as labels to the headerView.
UILabel *projName = [[UILabel alloc] initWithFrame:CGRectMake(5., 5., wd, 20)];
UILabel *projDesc = [[UILabel alloc] initWithFrame:CGRectMake(5., 25., wd, 20)];
projName.text = @"Project: this project is about an interesting ..";
projDesc.text = @"Description: a very long description should be more readable when your device is in landscape mode!";
[headerView addSubview:projName];
[headerView addSubview:projDesc];
return headerView;
}

我注意到 tableView:viewForHeaderInSection: 只会在 viewDidLoad 之后调用一次,但不会在设备方向更改之后调用。

我是否应该使用类似以下内容的方法来实现 willRotateToInterfaceOrientation: 方法:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration
{
[self.tableView reloadSections:nil withRowAnimation:UITableViewRowAnimationNone];
}

我不知道如何让 reloadSections: 工作,强制重新计算我的 customView。

最佳答案

如果您使用 autoresizingMask,标题会在旋转时正确调整。无需覆盖任何其他内容。我会在返回 View 之前在代码末尾设置自动掩码:

    [headerView addSubview:projName];
[headerView addSubview:projDesc];
projName.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
projDesc.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
headerView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
return headerView;

关于ios - 如何在旋转后更改自定义 viewForHeaderInSection 宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12639148/

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