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 方法中,明显这个方法更加优雅,将分割线设置偏移到屏幕外就好了。

时间: 2024-11-05 06:22:35

iOS 中隐藏UITableView最后一根分隔线的相关文章

iOS中表格(UITableView)嵌套表格的简单实现

iOS中表格(UITableView)嵌套表格的简单实现 首先说一下思路:我们在一个控制器里面定义2个tableview,一个作为被嵌套的rootTable,一个作为嵌套的表格tableView1,那我们要实现UITableViewDelegate,UITableViewDataSource,的代理的时候,该怎么区分呢?其实很简单,有两种方法,一个是给定义的2个tableview设置tag值,另一个是直接写出来tableView == rootTable时实现他得代理,否则就实现tableVie

iOS 中可用的受信任根证书列表

iOS 中可用的受信任根证书列表 iOS 受信任证书存储区中包含随 iOS 一并预装的受信任根证书. 关于信任和证书 以下所列的各个 iOS 受信任证书存储区均包含三类证书: "可信"的证书用于建立信任链,以验证由受信任根证书签署的其他证书:例如,与网页服务器建立安全连接.IT 管理员在创建 iOS 配置描述文件时,无需提供这些受信任的根证书. "始终询问"的证书不受信任,但不会被阻止.使用其中任一证书时,系统将提示您选择是不是信任这个证书. "已阻止&q

在iOS中隐藏状态栏

在Info.plist加入 View controller-based status bar appearance 并设置为NO; 在代码中调用[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];

如何修改UITableView每个cell的分隔线和左边的距离?

在ios7中,UITableViewCell左侧会有默认15像素的空白.这时候,设置setSeparatorInset:UIEdgeInsetsZero 能将空白去掉.但是在ios8中,设置setSeparatorInset:UIEdgeInsetsZero 已经不起作用了.下面是解决办法首先在viewDidLoad方法加入以下代码: if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) { [self.ta

UITableView分隔线

问题1: 在ios中使用UITableView时,当行数较少是,可能一屏幕能显示完全所有行,这时候会出现下面的问题,显示多余的分隔线 图如下: 解决方案: //解决方案1 //添加如下代码 -(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ return 0.1; } //解决方案2 //添加如下代码 UIView* v = [[UIView alloc]init];

iOS开发之UITableView的使用

这一篇记录的是iOS开发中UITableView的使用,iOS中的UITableView跟Android中的ListView特别相似,以下用一个Demo来说明: 1.Xcode中新建projectTestSimpleTableViewproject 2.在Main.storyboard中拖入一个UITableView控件 3.在ViewController.h文件里,实现UITableViewDelegate和UITableViewDataSource协议 这里须要说下的是.为了给UITable

【Material Design视觉设计语言】UI组件设计(六):分隔线

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells 分隔线 (Dividers) 主要用于管理和分隔列表和页面布局内的内容,以便让内容生成更好的视觉效果及空间感. 一 分隔线的功能 分隔线主要用来分隔没有锚点的项. 当在列表中没有像头像或者是图标之类的锚点元素时,单靠空格并不足以用于区分每个数据项.这种情况下使用一个等屏宽的分

IOS开发中的UITableView与UITableViewCell

UITableView用来以表格的形式显示数据.关于UITableView,我们应该注意: (1)UITableView用来显示表格的可见部分,UITableViewCell用来显示表格的一行. (2)UITableView并不负责存储表格中的数据,而是仅仅存储足够的数据使得可以画出当前可见部分. (3)UITableView从UITableViewDelegate协议获取配置信息,从UITableViewDataSource协议获得数据信息. (4)所有的UITableView实现时实际上只有

SWIFT中隐藏TableView多余的分隔线

在用TableView是如果数据不能填充满整个屏幕时,数据行下面会有空行及分隔线,这样不是很美观,如下 如何把多余的部分删除掉呢,其它很简单,把TableView的Footer替换为一个空的UIView即可. self.tableView.tableFooterView = UIView() so easy,It looks so nice