我试图使用包含UIDatePicker的扩展单元格来实现一个相当简单的表格视图,其中包含autolayout / Masonry和自动调整大小的单元格。
我遇到了日期选择器单元以一种很好的方式扩展的问题。当包含日期选择器的单元格开始展开时,其内容显示在单元格之外,即使单元格本身和cell.contentView都有clipsToBounds = YES
。我还尝试在clipsToBounds = YES
之后重新设置layoutSubviews
。
对质量感到抱歉,但这里有一个显示慢动作动画问题的GIF。
关于如何保持日期选择器夹在其单元格中的任何想法?任何帮助将不胜感激!
可能相关的代码片段:
插入/删除
[self.tableView beginUpdates];
if (showingStartTimePicker) {
[sections[TableSectionTimes] insertObject:@(TableRowStartTimePicker) atIndex:index];
[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:index inSection:TableSectionTimes]] withRowAnimation:UITableViewRowAnimationTop];
} else {
[sections[TableSectionTimes] removeObject:@(TableRowStartTimePicker)];
[self.tableView deleteRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:index inSection:TableSectionTimes]] withRowAnimation:UITableViewRowAnimationTop];
}
[self.tableView endUpdates];
DatePickerCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
[self setClipsToBounds:YES];
[self.contentView setClipsToBounds:YES];
_picker = [UIDatePicker new];
[self.contentView addSubview:_picker];
[_picker makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.contentView);
}];
}
return self;
}
答案 0 :(得分:1)
我最终选择的解决方案是将UITableViewRowAnimationTop
更改为UITableViewRowAnimationFade
,以便在动画显示的部分期间,该行几乎不可见。