gpt4 book ai didi

ios - UITableViewAutomaticDimension 不工作

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

我正在以编程方式为日历应用程序制作一个表格 View ,并且需要根据它们包含的文本调整我的表格 View 单元格的大小。我正在尝试使用自动布局,但由于某种原因我无法让它工作

 - (void)viewDidLoad
{
......
// Set up the table view
self.tableView.tableHeaderView = imageView;
self.tableView.tableHeaderView.backgroundColor = [UIColor whiteColor];
self.tableView.delegate = self;
self.tableView.dataSource = self;

self.tableView.estimatedRowHeight = 80.0f;
self.tableView.rowHeight = UITableViewAutomaticDimension;

[self.tableView registerClass:UITableViewCell.class
forCellReuseIdentifier:@"cell"];
}

这是我的 cellForRowAtIndexPath :

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"
forIndexPath:indexPath];

if(cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];

cell.detailTextLabel.textColor = [UIColor darkGrayColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;

if(indexPath.row == TableViewRowTitleAndDate)
{
cell.textLabel.numberOfLines = 0;
cell.textLabel.text = self.event.title;
cell.detailTextLabel.numberOfLines = 0;

//Get repeating status

// Set date and time
NSString *dateString = [NSDateFormatter localizedStringFromDate:self.event.startDate
dateStyle:NSDateFormatterFullStyle
timeStyle:NSDateFormatterNoStyle];

if(self.event.allDay)
{
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@\nAll Day\nRepeats", dateString];
}
else
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"h:mm a"];
NSString *startTimeString = [formatter stringFromDate:self.event.startDate];
NSString *endTimeString = [formatter stringFromDate:self.event.endDate];
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@\n%@ - %@\nRepeats", dateString, startTimeString, endTimeString];
}
}
}

但出于某种原因,我无法让自动布局工作。我还尝试添加 hightForRowAtIndexPath: 方法并返回 UITableViewAutomaticDimension,但仍然没有成功。

此外,了解我正在尝试将图像设置为使用 SDWebImage 下载的 tableViewHeaderView 可能会有所帮助。

这是应用程序的屏幕截图: http://manikkalra.com/screen.png http://manikkalra.com/screen2.png

任何帮助将不胜感激!

最佳答案

尽管在我看来这应该由 [tableView reloadData] 自动调用(有可能被覆盖),但事实并非如此。所以这是解决方案。

你必须调用:

[YOUR_TABLE_VIEW reloadSections:[NSIndexSet indexSetWithIndex:YOUR_SECTION_INDEX] withRowAnimation:YOUR_UITABLEVIEW_ANIMATION];

就在之前(这很重要)

[YOUR_TABLE_VIEW reloadData]

YOUR_TABLE_VIEW_ANIMATION 的选项是:UITableViewRowAnimationBottom、UITableViewRowAnimationNone、UITableViewRowAnimationTop ...

YOUR_SECTION_INDEX 是一个整数。

希望对你有帮助

关于ios - UITableViewAutomaticDimension 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27796072/

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