最近在做弹出菜单的时候,使用到了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