我正在尝试将UITableView插入位于https://github.com/John-Lluch/SWRevealViewController/tree/master/RevealControllerExample的第一个示例的RightViewController。
问题是表格左对齐,每个单元格中的文本都是截止的。
对此有哪些可能的解决方法?我查看了SWRevealViewController api并找不到解决方案。此外,我查看了UITableView api并尝试了每个可能的对齐设置,也在xib构建器中。似乎没有人改变文本的截止值
我附上了下面的图片。注意左对齐的表。
right side controller http://www.jeffcoat.net/rightsidecontroller.png
答案 0 :(得分:12)
使用下面的行为SWRevealViewController的_rightViewRevealOverdraw属性赋值0
self.revealViewController.rightViewRevealOverdraw = 0.0f;
或者
在SWRevealViewController.m
文件中搜索行
_rightViewRevealOverdraw = 60.0f;
并将其更改为
_rightViewRevealOverdraw = 0.0f;
这将解决您的问题。
更多改进的解决方案是在控制器而不是库中写下单行。
self.revealViewController.rightViewRevealOverdraw = 0.0f;
答案 1 :(得分: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];
答案 2 :(得分:0)
借助于 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;
}
答案 3 :(得分: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)
的框架,允许它跨越可见区域。