2017-06-26 9 views
0

私はiOS開発で新しく、現在UITableViewで作業しています。私はデバイスの画面上に最後に目に見えるセルを見つけたいですし、画面の最下部にあるセルは青色でなければなりません。セルは画面の上にスクロールすると緑色に消えます。UITableViewの最後の可視セルを検出する方法

私はこれらのリンク

Link1 Link2

しかし、成功を得ることができませんでしを通じて行っています。誰でも最後のセルを検出する方法を考えてください。&セルフェードアニメーション?

おかげ

+1

の可能性のある重複した[あなたがスクロールすると、IOSは、ボトムセルとトップセルをフェードのUITableView](https://stackoverflow.com/questions/22726103/ ios-uitableview-fade-bottom-cell-and-you-scroll) –

答えて

0

*スウィフト3.0では、あなたがこのテーブルビューのメソッドを使用することができます。

FUNC用のtableView(_のtableView:のUITableView、willDisplay細胞:のUITableViewCell、forRowAt indexPath:IndexPath)

{

let intTotalrow = tableView.numberOfRows(inSection:indexPath.section)//first get total rows in that section by current indexPath. 

    //get last last row of tablview 
    if indexPath.row == intTotalrow - 1{ 

      // call for last display 
    } 
}* 
0

が最後の目に見える細胞を得る:

if let lastCell = tableView.visibleCells.last { 
    // do something with lastCell 
} 
0

は、このコードを試してください、それは動作します

最初に宣言

int firstIndexRow; 
int lastIndexRow; 

のviewDidLoad(内部コードの下ライト)

[myTable reloadData]; //Reload because get visible last cell index row 
firstIndexRow = 0; 

lastIndexRow = (int)[self.myTable.indexPathsForVisibleRows lastObject].row; 

NSLog(@"first : %d",firstIndexRow); 
NSLog(@"Bottom : %d",lastIndexRow); 


- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ 


    NSIndexPath *firstVisibleIndexPath = [[self.myTable indexPathsForVisibleRows] objectAtIndex:0]; 

    NSIndexPath *lastObject = [self.myTable.indexPathsForVisibleRows lastObject]; 

    firstIndexRow = (int)firstVisibleIndexPath.row; 

    lastIndexRow = (int)lastObject.row; 

    NSLog(@"first : %d",firstIndexRow); 
    NSLog(@"Bottom : %d",lastIndexRow); 

    [myTable reloadData]; 

} 


-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [myTable dequeueReusableCellWithIdentifier:@"cell"]; 

    if (indexPath.row == firstIndexRow) { 
     cell.textLabel.textColor = [UIColor blueColor]; 
    }else if (indexPath.row == lastIndexRow) { 
     cell.textLabel.textColor = [UIColor greenColor]; 
    }else{ 
     cell.textLabel.textColor = [UIColor grayColor]; 
    } 

    cell.textLabel.text =[namesArray objectAtIndex:indexPath.row]; 


    return cell; 
} 
関連する問題