私は、自動レイアウト/石積みと自動サイズ設定のセルを持つUIDatePickerを含む拡張セルで、かなり単純なテーブルビューを実装しようとしています。UITableViewCellがエキスパンドアニメーション中に境界にクリッピングしない
日付ピッカーのセルがうまく展開されている問題が発生しています。日付ピッカーを含むセルが展開を開始すると、セル自体とcell.contentViewの両方にclipsToBounds = YES
があるにもかかわらず、その内容がセルの外側に表示されます。私もlayoutSubviews
の後にclipsToBounds = YES
を再設定しようとしました。
申し訳ありませんが、スローモーションでのアニメーションの問題を示す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;
}
テーブルセルにxibを使用しますか? yesの場合、awakeFromNibメソッドでclipsToBoundをYESに設定します。 –
いいえ、それは完全にプログラマティックです – Wernzy
いくつかの情報を収集する例があります - それはSwiftですが、コンセプトは同じです:http://www.appcoda.com/expandable-table-view/ ---代わりに、私はGitHubリポジトリを持っています。これはSwiftのセル要素の表示/非表示の方法をいくつか示していますが、yada yadaというコンセプトもあります。 – DonMag