0

私はUITableViewとを持っていUIScrollViewます。スクロール ビューはページングされます。私のテーブル ビューには、画像とタイトル (カスタム セル) があります。

indexたとえば、スクロール ビュー ページが 4 の場合、スクロール ビュー ページを 5 にすると、4 番目のセルのイメージが変更されます (アクティブなカラー イメージ) 。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;
}
4

1 に答える 1

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"];
}
于 2013-08-31T08:57:28.443 に答える