5

I am experimenting inserting a UITableView into the RightViewController of the first example located at https://github.com/John-Lluch/SWRevealViewController/tree/master/RevealControllerExample .

The issue is that that the table is aligned far left and the text in each cell is cutoff.

What are possible fixes for this? I have looked through the SWRevealViewController api and could not find a solution. Also, i looked through the UITableView api and tried each of the possible alignment setting, also in the xib builder. None seems to change the cutoff of the text

I have attached the image below. Notice the left aligned table.

right side controller
(source: jeffcoat.net)

4

4 回答 4

12

使用下面的行将 0 分配给 SWRevealViewController 的 _rightViewRevealOverdraw 属性

self.revealViewController.rightViewRevealOverdraw = 0.0f;

或者

SWRevealViewController.m文件中搜索行

_rightViewRevealOverdraw = 60.0f;

并改变它

_rightViewRevealOverdraw = 0.0f;

这将解决您的问题。

更改进的解决方案是在控制器而不是库中的单行下方编写。

  self.revealViewController.rightViewRevealOverdraw = 0.0f;
于 2014-01-07T12:52:38.617 回答
8

在 SWRevealViewController.m 文件中搜索行 _rightViewRevealOverdraw = 60.0f; 并将其更改为 _rightViewRevealOverdraw = 0.0f;

上面的 Amit Saxenas 回答帮助了我,但不是修改 SWRevealViewController.m,而是该类的头文件声明了一个可以设置为更改 rightViewRevealOverdraw 的公共属性。

self.revealViewController.rightViewRevealOverdraw = 0.0f;
[self.revealButtonItem setTarget:self.revealViewController];
[self.revealButtonItem setAction:@selector( rightRevealToggle: )];
[self.navigationController.navigationBar addGestureRecognizer:self.revealViewController.panGestureRecognizer];
于 2014-06-05T09:06:19.180 回答
0

借助 将 UITableViewCell 中的文本居中对齐文本 修改为右而不是居中,我能够使菜单与右对齐,最终代码如下。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:    (NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    NSInteger row = indexPath.row;

if (nil == cell)
{
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault     reuseIdentifier:cellIdentifier];

    cell.textLabel.textAlignment = NSTextAlignmentRight;
}


return cell;
}
于 2013-11-08T00:17:18.000 回答
0

由于默认_rightViewRevealOverdraw值为60.0f,因此您可以使用 AutoLayout 使 tableView 与 ViewController 的所有边缘对齐,除了Leading Space Margin.60

这将有效地为 tableView 提供一个框架(60.0, 0, view.frame.size.width - 60.0, view.frame.size.height),允许它仅跨越可见区域。

于 2015-10-12T18:28:52.960 回答