2012-06-15 106 views
19

我意识到我可以通过显示滚动视图“颠倒”来旋转单元格并移动指示器,但这需要很多其他旋转操作以及信息操作以使表格正确滚动。是否可以将UIScrollView指示器从右侧移动到左侧?

感谢您的时间

+1

这应该是一个全系统的设置,使左手用户的右侧有滚动条和右手的用户都在左边滚动条。多年以来我一直在讲这个。 – Cyrille

回答

70

其实,这是可以通过改变scrollIndicatorInsets属性限制左侧的指示灯,以小面积:

tableView.scrollIndicatorInsets = UIEdgeInsetsMake(0,0,0,tableView.bounds.size.width-10); 
+1

好,虽然它取决于你的常数'10'匹配滚动视图的宽度......从技术上讲,这是一个不安全的假设,但实际上这是可行的。 – rickster

+0

只是为了进一步澄清,10应该是指标本身的宽度,而不是滚动视图。我认为这是@rickster的意思。 –

+0

呃,没错。谢谢! – rickster

7

我喜欢杰里米周杰伦的解决方案(虽然我没有测试过),但只是为了彻底探索这个想法...这是另一个可能值得尝试的尝试(虽然它也未经测试):

使用两个滚动视图。

一个滚动视图(我们称之为“真实”视图)包含您的内容,但隐藏其指示器。另一个滚动视图不包含内容,但其contentSize设置为与“真实”滚动视图的匹配。当“真实”滚动视图的contentOffset更改(通过委托消息观察)时,请更改“伪造”滚动视图的偏移以匹配。 (查看WWDC 2012中的滚动视图会话,了解更多关于使用没有内容视图的滚动视图的想法。)

理论上(同样,我没有测试过这个),您现在有一个滚动指示器视图这与原始滚动视图分开,您可以将其放置在任何您喜欢的位置,与原始视图相关。将其放在原稿的顶部并移动/调整它的大小,使其在左侧占据一个很窄的条子,并且您有一个左侧滚动指示器。 (或者,把它放在原来的顶部,并用仿射变换水平翻转它。)把它放在别的地方,把你的UI带到一个疯狂的城镇之旅。 (或者不要。)尽管如此,如果它被置于顶层,请确保你忽略触摸。

2

一个快速的方法来实现这一点(如果你不使用行操作),而不必计算插入或与其他表视图混杂,将是跨越Y轴(翻转)转换表视图,然后转换细胞回来,当你得到它们。

tableView.transform = CGAffineTransformMakeScale(1, -1); 

然后

cell.transform = CGAffineTransformMakeScale(1, -1); 
相关问题