我在我的uitableview中显示自定义滚动条。所以我想计算滚动指示器的大小/高度。所以请建议我如何计算。
感谢
答案 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像素:
我认为滚动指示器高度是整个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
委托方法中设置此项,以便滚动条保持更新,位置正确。