TableView 中cell间的分割线(及其他控件间(内)的分割线)设置
知识点:
1、在应用开发中,tableView中自带的分割线满足不了开发需求;
2、一些子空间中添加一些类似于分割线一样的东西等······
补充知识点:导航条左侧或右侧的控件尽量靠近屏幕边缘设置
需求:
1、cell与cell之间需要一种白色的分割线;
2、cell的左侧能有视图标记此cell是被选中的,如下图所示:

实现方法:
1、左侧的红色选中标记:
(1)左侧添加一个红色背景色的view,并设置其尺寸位置约束如下图:

(2)通过代码设置其显示或隐藏的状态:
// 红色标记属性
@property (weak, nonatomic) IBOutlet UIView *selectedIndicator; - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:YES]; // 设置其隐藏属性的值与选中状态相反
self.selectedIndicator.hidden = !selected;
}
2、底部的分割线:
方法1:在cell底部添加一个指定颜色(分割线的颜色)的view,如下图:
尺寸及位置的约束见图;
注意:此处标记红色,是为了方便大家能够看见;

方法2:修改cell内contenView的尺寸,让其下部留出一条线的位置;
方法3:重写cell的 "- (void)setFrame:(CGRect)frame"方法,让其cell的高度减1(具体见下面实例)。
重写cell的 "- (void)setFrame:(CGRect)frame"方法距离拓展:
需求:如下图

实现:
/**
* 重写setframe方法,修改cell的尺寸和位置:分割线、距离左、右边一些距离
*/
- (void)setFrame:(CGRect)frame
{
frame.origin.x = ; // 左右侧间距都为5
frame.size.height -= ; // 高度减1
frame.size.width -= *frame.origin.x; // 宽度减去两边的间距
[super setFrame:frame];
}
补充知识点:导航条左侧或右侧的控件尽量靠近屏幕边缘设置
1、自定义左右侧的子空间;
2、设置子控件的内边距(contentEdgeInsets):如向左移动30
btn.contentEdgeInsets = UIEdgeInsetsMake(, -, , );
TableView 中cell间的分割线(及其他控件间(内)的分割线)设置的更多相关文章
- 解决tableView中cell动态加载控件的重用问题
解决tableView中cell动态加载控件的重用问题 tableView的cell,有时候需要在运行时取得对应的数据后才能够动态的创建该cell中的控件并加载到该cell中,此时,你一定会遇到重用问 ...
- IOS 关于tableview中cell的长按手势
说明:虽然是tableview中cell的长按手势 但是手势是添加在tableview上的 UILongPressGestureRecognizer *longpress = [[UILongPre ...
- Android各组件/控件间通信利器之EventBus
实际项目开发过程中,经常遇到如下场景:不同的应用程序组件的控件间具有一定的相互关联性,其中用户对后者进行的某种操作会引起前者的相应改变.举一个具体的场景:以糗事百科为例,在糗事列表页和详情页页,对于每 ...
- [WPF]获取控件间的相对位置
原文:[WPF]获取控件间的相对位置 [WPF]获取控件间的相对位置 周银辉 我们知道WPF有着比较灵活的布局方式,关于某个控件的坐标,Canv ...
- winform中button点击后再点击其他控件致使button失去焦点,此时button出现黑色边线,去掉黑色边线的方法
winform中button点击后再点击其他控件致使button失去焦点,此时button出现黑色边线,去掉黑色边线的方法 button的FlatAppearence属性下,设置BorderSize= ...
- MVC中使用HTML Helper类扩展HTML控件
文章摘自:http://www.cnblogs.com/zhangziqiu/archive/2009/03/18/1415005.html MVC在view页面,经常需要用到很多封装好的HTML控件 ...
- 在ASP.NET中动态加载内容(用户控件和模板)
在ASP.NET中动态加载内容(用户控件和模板) 要点: 1. 使用Page.ParseControl 2. 使用base.LoadControl 第一部分:加载模板 下 面是一个模板“<tab ...
- c#中如何跨线程调用windows窗体控件
c#中如何跨线程调用windows窗体控件? 我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍.首 ...
- 安卓中的事件分发机制之View控件
前言:Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev).onInterceptTouchEvent(MotionEvent e ...
随机推荐
- 搭建Spring + SpringMVC + Mybatis框架之一(创建项目)
创建项目 用maven管理项目很方便,不用手动下载jar包,直接在pom.xml配置文件中,maven可以帮助我们自动下载,非常方便 新建一个web project,添加maven支持就可以了,这样创 ...
- ORA-01722: invalid number
---问题 select owner,index_name,DEGREE from DBA_INDEXES where DEGREE>1 ...
- [Angular2 Router] Use Params from Angular 2 Routes Inside of Components
Angular 2’s ActivatedRoute allows you to get the details of the current route into your components. ...
- KMP算法具体解释(转)
作者:July. 出处:http://blog.csdn.net/v_JULY_v/. 引记 此前一天,一位MS的朋友邀我一起去与他讨论高速排序,红黑树,字典树,B树.后缀树,包含KMP算法,只有在解 ...
- crm2011创建货币Money类型的字段
using System; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Messages; using Microsoft ...
- BigPipe
BigPipe是一个重新设计的基础动态网页服务体系.大体思路是,分解网页成叫做Pagelets的小块,然后通过Web服务器和浏览器建立管道并管理他们在不同阶段的运行.这是类似于大多数现代微处理器的流水 ...
- (转)从Membership 到 .NET4.5 之 ASP.NET Identity
引入 - 用户信息是如何存在数据库中的 我们前两篇都只讲到了怎么用Membership注册,登录等,但是我们漏掉了一个很重要并且是基本上每个用Membership的人都想问的,我的用户信息怎么保存?我 ...
- windows下 定时删除tomcat日志和缓存。可以保留天数
forfiles /p "e:\Program Files\Tomcat 7.0\logs" /s /m *.log /d -5 /c "cmd /c del @path ...
- 2.1.6 用ProtectX实现扫描的反击与追踪
ProtectX是一款在用户连接网络时保护电脑的工具,可以同时监视20个端口,还可以帮助追踪攻击者的来源.一旦有人尝试连接到用户的电脑,它即可发出声音警告并将入侵者的IP位址记录下来,可以防止黑客入侵 ...
- [经典算法] Eratosthenes筛选求质数
题目说明: 除了自身之外,无法被其它整数整除的数称之为质数,要求质数很简单,但如何快速的求出质数则一直是程式设计人员与数学家努力的课题,在这边介绍一个著名的 Eratosthenes求质数方法. 题目 ...