首页 > 代码库 > iOS 中隐藏UITableView最后一根分隔线

iOS 中隐藏UITableView最后一根分隔线

最近在做弹出菜单的时候,使用到了FTPopOverMenu,遇到了箭头向下时,最后一根分割线十分不美观的问题。
由于这种菜单一般是不能滚动的,即设置了UITableView的滚动属性为NO。
我想了一种方法,是在最后一根分割线上添加一个视图,将其盖住。

UIView *lineView = [self viewWithTag:201];
if (!lineView) {
    lineView = [[UIView alloc] initWithFrame:CGRectZero];
}
lineView.frame = CGRectMake(5, menuRect.size.height-2, menuRect.size.width - 10, 2);
lineView.tag = 201;
lineView.backgroundColor = [FTPopOverMenuConfiguration defaultConfiguration].tintColor;
[self insertSubview:lineView aboveSubview:self.menuTableView];

但是这种做法很有局限性,只能应用在UITableView 不能滚动,并且UITableView的contentSize等于其frame.size的情况。

返回给作者后,作者给出了一个更加优雅的做法:

if (indexPath.row == _menuStringArray.count-1) {
        menuCell.separatorInset = UIEdgeInsetsMake(0, self.bounds.size.width, 0, 0);
    }else{
        menuCell.separatorInset = UIEdgeInsetsMake(0, FTDefaultMenuTextMargin, 0, 10+FTDefaultMenuTextMargin);
    }

上面这个设置写在CellForRow 方法中,明显这个方法更加优雅,将分割线设置偏移到屏幕外就好了。

<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

    iOS 中隐藏UITableView最后一根分隔线