2017-04-25 74 views
3

我試圖用包含UIDatePicker的擴展單元實現一個相當簡單的表格視圖,具有自動佈局/砌體和自動調整大小的單元格。UITableViewCell在展開動畫期間沒有剪裁到邊界

我遇到了日期選擇器單元格以不錯的方式展開的問題。當包含日期選擇器的單元格開始展開時,其內容顯示在單元格外部,即使我在單元格本身和cell.contentView上都有clipsToBounds = YES。我也試過在layoutSubviews之後重新設置clipsToBounds = YES

對不起,質量,但這裏是一個動畫顯示慢動作問題的gif。

Animation Glitch

我如何能保持其細胞內裁剪日期選取任何想法?任何幫助將不勝感激!

可能相關的代碼段:

插入/刪除

[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

您是否使用xib作爲tablecell?如果是,請在awakeFromNib方法中將clipsToBound設置爲YES。 –

+0

不,它完全是編程的 – Wernzy

+0

這裏有一個例子,你可以從Swift中收集一些信息,但概念將是相同的:http://www.appcoda.com/expandable-table-view/ ---另外,我有一個GitHub倉庫,演示了一些顯示/隱藏單元格元素的方法 - 同樣在Swift中,但概念yada yada:https://github.com/DonMag/DynamicCellHeight – DonMag

回答

0

我結束了在改變UITableViewRowAnimationTopUITableViewRowAnimationFade去,使該行主要是無形的解決方案在動畫顯示的部分。