В моем приложении есть UITable.In ячейке таблицы я добавил UIStackView для заполнения при загрузке ячейки таблицы.Автоматическое добавление элементов пользовательского интерфейса в UIStackView во время UITable Scrolling
Он работал нормально, пока не прокрутился вниз по столу. В стеке добавлено больше элементов при прокрутке вверх и вниз. (элементы означают UIButtons, я буду заменять их UIlabel в будущем)
У меня нет никакой идеи для решения этой проблемы. Спасибо ..
- (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];
}
}
Да, это было у меня на уме, но как очистить subviews в стеке. – gamal
Вы должны выполнить итерацию через свойство subviews UIStackView и вызвать removeArrangedSubview UIStackView (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIStackView_Class_Reference/#//apple_ref/occ/instm/ UIStackView/removeArrangedSubview :) и removeFromSuperview (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/instm/UIView/removeFromSuperview) UIButton , или какой-либо элемент управления находится в представлении стека. – Igniz
Что вы имеете в виду, это добавить эту строку после получения представления стека. [[stkItems subviews] makeObjectsPerformSelector: @selector (removeFromSuperview)]; Это не работает. – gamal