`

(转)UITableView的分割线长短的控制

    博客分类:
  • IOS
阅读更多

转自:http://blog.csdn.net/smiling8866/article/details/51548234

 

一、遇到问题

当我利用第三方 FPPopoverController 来显示UITableView的时候,cell的分割线左边没有顶满,而右边却顶满了。这样显示很难看。我需要让其左右两边都是未顶满状态,距离是15像素。

二、解决方法

1、在UITableView的viewDidLoad方法中添加以下代码:

 

// code1
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
        [self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 15)];
    }

// code2 
    if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
        [self.tableView setLayoutMargins:UIEdgeInsetsMake(0, 15, 0, 15)];
    }
 

 

 2.添加UITableView的一个代理方法:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([cell respondsToSelector:@selector(setSeparatorInset:)])
    {
        [cell setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 15)];
    }
    if ([cell respondsToSelector:@selector(setLayoutMargins:)])
    {
        [cell setLayoutMargins:UIEdgeInsetsMake(0, 15, 0, 15)];
    }
}

三、对解决方法的剖析

code1处代码: 
定制cell分割线的frame

 

code2处代码: 
-layoutMargins returns a set of insets from the edge of the view’s bounds that denote a default spacing for laying out content. 
If preservesSuperviewLayoutMargins is YES, margins cascade down the view tree, adjusting for geometry offsets, so that setting the left value of layoutMargins on a superview will affect the left value of layoutMargins for subviews positioned close to the left edge of their superview’s bounds 
If your view subclass uses layoutMargins in its layout or drawing, override -layoutMarginsDidChange in order to refresh your view if the margins change.

 

*注意:后来发现了更简单的办法,就是在storyboard那里Seperator insert可以调节

分享到:
评论

相关推荐

    iOS应用开发中UITableView的分割线的一些设置技巧

    其实只需要如下这样子就可以实现分割线的控制。 代码如下: -(void)tableView:(UITableView )tableView willDisplayCell:(UITableViewCell )cell forRowAtIndexPath:(NSIndexPath *)indexPath {  // 下面这几行...

    隐藏tableView分割线及隐藏和现实导航栏教程共23页

    在iOS应用开发中,我们经常会遇到需要自定义用户界面的需求,比如隐藏UITableView的分割线以及控制导航栏的显示和隐藏。这些操作可以提升应用的视觉效果,使界面更加整洁、专业。下面,我们将深入探讨如何实现这两个...

    iphone开发基础UITableView的多行编辑控制

    本教程将深入探讨如何在iPhone开发中实现UITableView的多行编辑控制,这对于初学者来说是一个非常实用的技能。在iOS 5.0及以上版本以及使用SDK 6.0及以上时,可以充分利用这个特性来提升用户体验。 UITableView不仅...

    swift_3 swift之UITableView和UINavigation视图控制器

    在Swift编程中,UITableView和UINavigationController是两个非常关键的组件,它们构成了iOS应用中的许多界面。这篇文章将深入探讨这两个组件的使用以及它们如何协同工作。 首先,UITableView是iOS开发中最常用的...

    swift-GroupTableSeparatorFix分组TableView分割线优化

    它通过自定义UITableViewCell和调整默认的分割线属性,实现了更精确的控制和美化分组TableView的间隔线效果。这个库的使用可以帮助开发者避免因为系统默认设置带来的视觉误差,确保每个分组之间的分割线清晰、连续,...

    swift-SplittableViewKit-当设备旋转时UITableView中的IndexPath单元格将自动移动到左视图

    Swift开发中的UI设计是构建iOS应用的关键部分,而SplittableViewKit是一个专为处理设备旋转时UITableView布局问题的工具包。在iOS应用中,特别是涉及到iPad等多窗口设备时,用户可能希望在横屏模式下将某些内容保留...

    UITableView

    数据源协议是UITableView的核心,负责提供数据和控制表格的结构。你需要实现这个协议中的方法,如`numberOfSections(in:)`来定义表格的段数,`tableView(_:numberOfRowsInSection:)`来指定每一段内的行数,以及`...

    tableview分割线.zip

    这个分割线是由`separatorStyle`属性控制的,你可以通过以下代码设置: ```swift tableView.separatorStyle = .singleLine // 单一细线 tableView.separatorStyle = .none // 不显示分割线 tableView....

    ios-UITableView 滚动控制,动画控制, 回到顶部.zip

    这个压缩包文件"ios-UITableView 滚动控制,动画控制, 回到顶部.zip"主要探讨了如何实现UITableView的滚动控制、动画效果以及添加回到顶部功能。我们将详细解析这些关键知识点。 首先,滚动控制是UITableView的基础...

    UITableView、UITableView基本用法、UITableView详解

    iOS 开发中 UITableView 的使用详解 UITableView 是 iOS 开发中最常用的控件之一,用于显示列表数据。它类似于 Android 中的 ListView,都是用于显示列表数据的控件。在 iOS 开发中,UITableView 是一个非常重要的...

    UITableView表视图和导航控制器的交互使用

    同时,UITableView提供了Delegate和DataSource协议,让开发者能够控制表格的行为和内容,如加载数据、处理点击事件等。 接下来,UINavigationController是一个容器视图控制器,它管理一个堆栈式的视图控制器序列,...

    QQ样式的UITableView

    2. **自定义分割线**:默认的UITableView分割线可能不符合QQ风格,可以自定义线条的颜色、宽度和位置。 3. **状态提示**:例如未读消息的红点提示,这可能需要额外的UI元素和逻辑处理。 4. **触摸反馈**:在用户...

    iPhone之UITableView入门

    首先,UITableView的主要组成部分包括:表头(HeaderInSection)、表尾(FooterSection)、单元格(UITableViewCell)和分隔线(Separator)。在`UITableViewDataSource`协议中,你需要实现几个关键的方法来填充数据...

    代码实现 UITableView与UITableViewCell

    10. **自定义分割线**: 可以通过设置`separatorStyle`改变分割线样式,或者完全自定义分割线视图。 综上所述,实现UITableView和UITableViewCell涉及多个步骤,从创建表格到数据源和委托方法的设置,再到自定义...

    IOS 基础之设置 tableview 的分割线

    通过这种方式,你可以完全控制分割线的外观和位置,使其更符合应用的设计需求。 总之,设置UITableView的分割线主要涉及`separatorColor`和`separatorStyle`两个属性,可以根据项目需求灵活调整。同时,通过自定义...

    仿IOS式ListVIew UITableView

    - **分割线**:为列表项之间添加分隔线,使得视觉效果更加接近UITableView。 - **自定义布局**:为每个列表项创建自定义布局,以便实现与iOS类似的样式。 3. **实现步骤** - 创建布局文件:为每个列表项创建XML...

    UITableview处理键盘遮挡

    在iOS开发中,`UITableView` 是一个非常常用且强大的组件,用于展示列表数据。然而,在实际应用中,我们经常会遇到一个问题:当用户在`UITableView`中的输入框(如UITextField)中输入时,弹出的键盘可能会遮挡住...

    UITableView 上拉 下拉 修改版

    在iOS开发中,UITableView是用于展示列表数据的关键组件,它允许用户滚动查看多个行项。在标题"UITableView 上拉 下拉 修改版"中提到的"上拉"和"下拉"功能,通常指的是无限滚动(Infinite Scrolling)或者加载更多...

    Iphone-UITableView使用

    如果想自定义`UITableView`的分割线,可以通过设置`separatorStyle`和`separatorColor`属性,或者完全隐藏分割线。 9. **头视图和尾视图** `UITableView`允许添加头部视图(`tableHeaderView`)和尾部视图(`...

Global site tag (gtag.js) - Google Analytics