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 ...
随机推荐
- 为C# Windows服务添加安装程序
最近一直在搞Windows服务,也有了不少经验,感觉权限方面确定比一般程序要受限很多,但方便性也很多.像后台运行不阻塞系统,不用用户登录之类.哈哈,扯远了,今天讲一下那个怎么给Windows服务做个安 ...
- Delphi和JAVA用UTF-8编码进行Socket通信例子
最近的项目(Delphi开发),需要经常和java语言开发的系统进行数据交互(Socket通信方式),数据编码约定采用UTF-8编码. 令我无语的是:JAVA系统那边反映说,Delphi发的数据他们收 ...
- Android progressBar 自定义圆形旋转图片
项目需要中需要更换progressbar的旋转背景,在网上找了几种办法,但是都有各自的问题 于是结合网上所讲,研究了一下终于ok了: 一 首相在drawable文件夹中建立如下旋转动画文件 <? ...
- Xcode常见的编译、运行等错误的解决
Xcode常见的编译.运行等错误的解决 项目没找到Info.plist的错误 The solution for this particular instance of the error was “I ...
- Errors running builder "Integrated External Tool Builder" on project
Errors during build.Errors running builder "Integrated External Tool Builder" on project p ...
- MYSQL: Handler_read_%参数说明
环境: 表t_feed_idx(user_id bigint, feed_id bigint, KEY (`user_id`,`feed_id`)) engine=innodb;表t_feed_i ...
- /proc/sys/vm/ 内存参数
linux下proc里关于磁盘性能的参数 http://blog.csdn.net/eroswang/article/details/6126646 我们在磁盘写操作持续繁忙的服务器上曾经碰到一个特 ...
- 疑难杂症:java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion(Ljava/lang/String;)V
错误: java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion(Ljava/lang/Strin ...
- c#高效的线程安全队列ConcurrentQueue<T>(上)
ConcurrentQueue<T>队列是一个高效的线程安全的队列,是.Net Framework 4.0,System.Collections.Concurrent命名空间下的一个数 ...
- Linux下的lds链接脚本基础
转载:http://soft.chinabyte.com/os/104/12255104.shtml 今天在看uboot引导Linux部分,发现要对链接脚本深入了解,才能知道各个目标文件的内存分布 ...