我通过实现以下委托方法使用Indexed UITableView:
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
索引显示在表格的右侧。 我想知道索引是否可以显示在左侧。
谢谢,
答案 0 :(得分:3)
您可以将tableView索引视图移动到左侧,但只是一点点,这样您就不会拒绝您的应用程序))。方法如下:
// somewhere in your code for example in table view delegate method add this code
// take the index view, which is the last subview on the tableView
UIView *indexView = [[self.tableView subviews]lastObject];
// now take its frame and play with it
CGRect indexViewRect = indexView.frame;
indexViewRect.origin.x -= 50; // move it to the left by -50
indexView.frame = indexViewRect; // set the new frame
多数民众赞成:)
顺便说一句,如果你将索引视图移到最左边,我不认为Apple会拒绝你的应用程序,因为我在iPad上的联系人应用程序中看到了这一点,但无论如何都要冒风险。
更新:完全可自定义且易于使用的ScrollBar,您可以在这里找到: https://github.com/BasheerSience/BRScrollBar
答案 1 :(得分:2)
不,这个索引的样式和位置是不可配置的(不幸的是)。
答案 2 :(得分:1)
我不认为api暴露了那个组件。可悲的是,你必须压制旋转并将手机颠倒过来,这将是一个非常糟糕的用户体验。 (只是一个笑话,不要低估我)
答案 3 :(得分:1)
即使没有被iOS API正式公开, 也可以通过“黑客攻击”来移动索引。
首先,您必须在UITableView子视图树中找到索引。 一种简单的方法是在运行时放置一个断点并使用它:
po [myTableView recursiveDescription]
这将打印视图树并通过分析它,您应该找到一种方法以编程方式找到您感兴趣的UIView,并移动它(view.frame.origin
),并且,而不使用任何私有API < / em>的
但在尝试之前,请三思而后行。这个指数在右侧是有充分理由的,大多数人右手握拇指......在另一边很难使用。