私のアプリケーションにはUITableがあります。表のセルには、表のセルをロード中にUIStackViewを追加しました。UITableスクロール中にUIStackViewにUI要素を自動的に追加
テーブルをスクロールするまではうまくいきました。上下にスクロールするとスタックビューに要素が追加されます。 (要素はUIButtonsを意味し、私は将来UIlabelと置き換えます)
私はこの問題を解決するためのいかなる考えも持っていません。セルが(dequeueReusableCellWithIdentifierで)再利用されたときに、それはまだボタンが含まれ、すべての時間があなたのアプリケーションは、それがUIStackViewにボタンを追加しますセルを描画する必要があると思われるコードから
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
UIStackView *stkItems=(UIStackView *)[cell viewWithTag:8];
for(int i=0;i<5;i++) {
UIButton *btn=[UIButton buttonWithType:UIButtonTypeSystem];
[btn setTitle:@"test btn" forState:UIControlStateNormal];
[stkItems addArrangedSubview:btn];
}
}
はい、私は気にしていましたが、スタックビューでサブビューをクリアする方法はありました。 – gamal
UIStackViewのsubviewsプロパティを反復処理し、UIStackViewのremoveArrangedSubview(https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIStackView_Class_Reference/#//apple_ref/occ/instm/)を呼び出す必要があります。 UIStackView/removeArrangedSubview :)およびUIButtonのremoveFromSuperview(https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/instm/UIView/removeFromSuperview)を参照してください。 、またはスタックビュー内のコントロールは何でも – Igniz
スタックビューを取得したら、この行を追加することです。 [[stkItems subviews] makeObjectsPerformSelector:@セレクタ(removeFromSuperview)]; それは動作していません.. – gamal