2015-11-03 49 views
0

我在自定义单元格内设置了一个scrollView。在我的tableViewController我用...将scrollView.delegate设置为scrollView而不是UITableView

UIScrollViewDelegate 

......当“滚动视图”移动填补委托。虽然,我只希望它在图像滚动视图移动时作出反应。

它当前对两个都有反应,当tablView滚动和图像滚动视图滚动时。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    //other irrelevant cell setup.... 

    scrollView = cell.imageScrollView 
    scrollView.pagingEnabled = true 
    scrollView.scrollEnabled = true   
    scrollView.delegate = self 
    scrollView.tag = indexPath.row 
} 

func scrollViewDidScroll(scrollView: UIScrollView) { 

    var pageWidth = scrollView.frame.size.width 
    var newPage = floor((scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1 
    //prints: 0.0 , while tableView scrolls 
    //also, prints newPage when scrollView is moved 

    print(newPage) 
} 

我试过使用发件人,但不知道谁来正确合并它。有任何想法吗?看来......

- (void)scrollViewDidScroll:(UIScrollView *)sender{} 

......不再存在。

回答

1

您可以尝试使用isMemberOfClass(),像这样:

if sender.isMemberOfClass(UITableView) { 
    // your logic 
} 
else sender.isMemberOfClass(UIScrollView) 
{ 
    // your logic  
} 
+0

哇。不知道这样的东西存在。 – whereisleo

相关问题