Если вы используете поиск Eclipse, вы можете включить опцию «DOTALL», чтобы сделать «.». сопоставить любой символ, включая разделители строк: просто добавьте «(? s)» в начале строки поиска. Пример:
(?s).*<FooBar>
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int)
использовать раздел.
if section == 0
return 100
else if section == 1
return 10
Пожалуйста, выполните следующие действия:
установите в глобальном:
var arrIndex = 10
Затем в
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrIndex
}
Затем добавьте кнопку внизу таблицы View. В действии кнопки напишите
@objc func btnShowMoreClicked(sender : Any){
arrIndex = arrIndex + 10
self.tableView.reloadData()
}
Это может вам помочь. Спасибо.
Вы можете управлять этими вещами, используя pageIndex
, установить глобальную переменную var pageIndex:Int = 1
и нажать больше, чтобы увеличить pageIndex
на 1 и перезагрузить UITableview
. Я написал эту логику для секции 0, изначально загружающей 10 записей,
Я добавил еще одну строку на +1 в этом утверждении return (10 * pageIndex) + 1
, потому что +1 для кнопки «загрузить больше».
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0 {
return (10 * pageIndex) + 1
}else {
return 10
}
}
Часть вашего вопроса:
раздел 1 содержит 800 многократно используемых ячеек
blockquote>Похоже, у вас есть 800 строк в разделе 1 вместо 800 ячеек. После того, как вы отобразите табличное представление, оно создаст только те ячейки, которые могут быть отображены на экране, и будет использовать их, как только появятся новые данные.
Вам необходимо сделать следующее:
- Создать основной источник данных (скажем, массив), содержащий 800 строк. (скажем,
allRows
)- Создайте другой источник, который содержит частичные данные из
allRows
. (скажем 'fetchedRows')- Добавьте кнопку
Load More
в нижний колонтитул или в последний ряд.- При нажатии «Load More» извлекает некоторое количество строк от
allRows
доfetchedRows
. (скажем, 10 строк)- Перезагрузить представление таблицы с использованием источника данных
fetchedRows
.- Те же шаги можно выполнить и для раздела 2.
Сначала установите глобальную переменную int:
@interface TableViewController () {
int arrNum;
}
@end
@implementation TableViewController
- (void)viewDidLoad {
[super viewDidLoad];
arrNum = 3;
}
Затем установите количество разделов:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section == 0){
return arrNum;
}else {
return 5;
}
}
Затем создайте кнопку в нижнем колонтитуле раздела:
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
UIButton *btn = [[UIButton alloc]init];
[btn setTitle:@"btn Click" forState:UIControlStateNormal];
[btn setBackgroundColor:[UIColor blueColor]];
[btn addTarget:self action:@selector(btnClk) forControlEvents:UIControlEventTouchDown];
return btn;
}
Теперь установите необходимое действие при нажатии кнопки:
-(void)btnClk {
arrNum = arrNum + 2;
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
}