2017-04-25 5 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を使用しますか? yesの場合、awakeFromNibメソッドでclipsToBoundをYESに設定します。 –

+0

いいえ、それは完全にプログラマティックです – Wernzy

+0

いくつかの情報を収集する例があります - それはSwiftですが、コンセプトは同じです:http://www.appcoda.com/expandable-table-view/ ---代わりに、私はGitHubリポジトリを持っています。これはSwiftのセル要素の表示/非表示の方法をいくつか示していますが、yada yadaというコンセプトもあります。 – DonMag

答えて

0

私は行がほとんど見えなくなるようUITableViewRowAnimationFadeUITableViewRowAnimationTopを変えたと一緒に行くことになったソリューションアニメーションが表示されている部分の間

関連する問題