计算uitableview的滚动指示器大小

时间:2014-10-02 07:26:07

标签: ios uitableview uiscrollview

我在我的uitableview中显示自定义滚动条。所以我想计算滚动指示器的大小/高度。所以请建议我如何计算。

感谢

2 个答案:

答案 0 :(得分:1)

更新

道歉,我的公式不完整。

我的百分比和帧高之间感到困惑。

所以正确的公式是这样的:

scrollBar percentage height = table view height / table view contentSize

scrollBar height = scrollBar percentage height * table view height

再次将其翻译成代码:

CGSize scrollBarSize;

scrollBarSize.width = 10.0;

CGFloat percentageHeight = self.tableView.bounds.size.height / self.tableView.contentSize.height;

scrollBarSize.height = percentageHeight * self.tableView.bounds.size.height;

NSLog(@"scrollBar height = %lf", scrollBarSize.height);

这是一个photoshop截图示例,尝试使用矩形选择选框来测量我的截图中的scrollBar高度,它应该出现在166.644像素:

scrollBar height screenshot

原始答案

我认为滚动指示器高度是整个tableView内容大小的可见百分比的直观表示。

所以也许您可以通过获取设备屏幕的高度来计算它,除以tableView的内容大小高度:

scroll bar height = table view height / table view contentSize

将其翻译成代码可能类似于:

CGSize scrollBarSize;

scrollBarSize.width = 10.0;

scrollBarSize.height = self.tableView.bounds.size.height / self.tableView.contentSize.height;

NSLog(@"scrollBar height = %lf", scrollBarSize.height);

这对你有用吗?

答案 1 :(得分:0)

CGRect scrollFrame = CGRectMake(self.view.frame.size.with - (SCROLLBAR_WIDTH + PADDING),
                                (self.scrollView.contentOffset * self.scrollView.frame.size.height) / self.contentSize.height,
                                SCROLLBAR_WIDHT, 
                                SCROLLBAR_HEIGHT);

尝试使用上下文中的变量替换某些变量。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView委托方法中设置此项,以便滚动条保持更新,位置正确。