我需要实现类似于UIPickerView的行为,但是使用UITableView。如果此单元格位于UITableView的中心,取决于滚动,则增加单元格UIImageView的高度。
我可以在
中检测到UITableView的滚动- (void)scrollViewDidScroll:(UIScrollView *)scrollView
在这个方法中,我可以获得UITableView的中心
CGFloat center = self.view.frame.size.height/2.0f;
我可以得到可见细胞的位置及其中点:
NSArray *paths = [self.tableView indexPathsForVisibleRows];
for (NSIndexPath *path in paths) {
CGRect cellRect = [self.tableView rectForRowAtIndexPath:path];
cellRect = CGRectOffset(cellRect, -self.horizontalTableView2.contentOffset.x, -self.horizontalTableView2.contentOffset.y);
CGFloat y = CGRectGetMidY(cellRect);
CustomCell *cell = [self.tableView cellForRowAtIndexPath:path];
CGRect frame = cell.paramImage.frame;
frame.size.height = ???;
cell.paramImage.frame = frame;
}
如何计算高度取决于单元格与UITableView中心的距离?
答案 0 :(得分:0)
你可以像这样在self.view中获取cell.frame。
CGRect rect = [cell.superView convertRect:cell.frame toView:self.view];
然后,您可以计算单元格与UITableView中心的距离。
答案 1 :(得分:0)
这是我的样本project,带有水平UITableView,可在滚动时调整UITableViewCell中的图像。