【问题标题】:SWRevealViewController right side menuSWRevealViewController 右侧菜单
【发布时间】:2013-11-19 13:27:30
【问题描述】:

我正在尝试将 UITableView 插入位于 https://github.com/John-Lluch/SWRevealViewController/tree/master/RevealControllerExample 的第一个示例的 RightViewController 中。

问题是表格最左对齐,每个单元格中的文本被截断。

对此有什么可能的解决方法?我查看了 SWRevealViewController api,但找不到解决方案。此外,我查看了 UITableView api 并尝试了每个可能的对齐设置,也在 xib 构建器中。似乎没有人改变文本的截断

我附上了下面的图片。注意左对齐的表格。


(来源:jeffcoat.net

【问题讨论】:

标签: ios objective-c uitableview


【解决方案1】:

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

self.revealViewController.rightViewRevealOverdraw = 0.0f;

或者

SWRevealViewController.m文件中搜索行

_rightViewRevealOverdraw = 60.0f;

然后改变它

_rightViewRevealOverdraw = 0.0f;

这将解决您的问题。

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

  self.revealViewController.rightViewRevealOverdraw = 0.0f;

【讨论】:

  • 目前这似乎可行。虽然我有点担心这些值目前的作用以及它们如何影响视图。
【解决方案2】:

在 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];

【讨论】:

    【解决方案3】:

    借助 Center Align text in UITableViewCell problem 修改为右侧而不是中心我能够使菜单与右侧对齐,最终代码如下。

    - (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;
    }
    

    【讨论】:

    • 嗨.. 我看到你积极参与 SWRevealViewController。我在使用 SWRevealViewController 时遇到问题。你可以通过这个 url.stackoverflow.com/questions/25987486/… 。请指导我如何解决这个问题?
    【解决方案4】:

    由于默认的_rightViewRevealOverdraw60.0f,您可以使用AutoLayout 使tableView 与您的ViewController 的所有边缘对齐,Leading Space Margin60 除外。

    这将有效地为 tableView 提供(60.0, 0, view.frame.size.width - 60.0, view.frame.size.height) 的框架,使其仅跨越可见区域。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-08
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 2016-03-01
      • 2013-06-23
      • 2021-10-09
      • 1970-01-01
      相关资源
      最近更新 更多