我有UITableView
和UIScrollView
。滚动视图为分页。在我的表视图中,有一个图像和一个标题(自定义单元格)。
我想根据滚动视图页面在任何index
更改单元格的图像,例如,如果滚动视图页面为4,则第四个单元格的图像将更改(活动彩色图像),当我滚动视图页面5,第4个图像将变为正常(被动彩色图像),第5个单元格的图像将变化(活动彩色图像)。
我想在scrollViewDidScroll
期间更改图片。我在互联网上找不到任何可能的解决方案。有没有办法做到这一点?
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
// how do i get page number : 0-768-1536 ---->0 means page1, 768 page 2 ...
float currentPos = myScroller.contentOffset.x;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return konuBaslikListesi.count;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 90;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
KonularCell *cell = [tableView dequeueReusableCellWithIdentifier:@"KonularCell"];
if (cell == nil) {
cell =[[[NSBundle mainBundle] loadNibNamed:@"KonularCell" owner:self options:nil] objectAtIndex:0];
[cell setAccessoryType:UITableViewCellAccessoryNone];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
}
cell.Konuismi.numberOfLines = 0;
[cell.Konuismi setLineBreakMode:NSLineBreakByWordWrapping];
cell.Konuismi.text=[[[konuBaslikListesi objectAtIndex:indexPath.row] objectForKey:@"konu"] objectForKey:@"text"];
cell.imgKonuisaret.image=[UIImage imageNamed:@"menupassive.png"];
return cell;
}
答案 0 :(得分:0)
根据每个页面的大小和滚动视图的内容偏移量计算页码。页码应存储在属性中。
CGFloat oldPage = self.page;
CGFloat offset = scrollView.contentOffset.x;
CGFloat pageWidth = scrollView.frame.size.width;
CGFloat page = floorf(offset / pageWidth);
if (page != oldPage) {
self.page = page;
[self.tableView reloadData];
}
然后在你的表格视图方法(cellForRowAtIndexPath:
)中你会得到类似的东西:
if (self.page == indexPath.row) {
cell.imgKonuisaret.image=[UIImage imageNamed:@"menuactive.png"];
} else {
cell.imgKonuisaret.image=[UIImage imageNamed:@"menupassive.png"];
}