根据它在UITableView中心的位置,在UITableViewCell中更改UIImage的高度

时间:2015-11-27 07:24:04

标签: ios objective-c uitableview uiimageview height

我需要实现类似于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中心的距离?

2 个答案:

答案 0 :(得分:0)

你可以像这样在self.view中获取cell.frame。

CGRect rect  = [cell.superView convertRect:cell.frame toView:self.view];

然后,您可以计算单元格与UITableView中心的距离。

答案 1 :(得分:0)

这是我的样本project,带有水平UITableView,可在滚动时调整UITableViewCell中的图像。