UITableViewController和延时执行、自定义控件
1、在UITableViewController中,self.view就是self.tableView, 两个对象的指针地址是一样的
2、自定义类继承UITableViewCell, 重写父类方法
/**
初始化方法
使用代码创建Cell的时候会被调用,如果使用XIB或者Storyboard,此方法不会被调用
*/
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
NSLog(@"%s", __func__);
}
return self;
} /**
从XIB被加载之后,会自动被调用,如果使用纯代码,不会被执行
*/
- (void)awakeFromNib
{
NSLog(@"%s", __func__);
self.contentView.backgroundColor = [UIColor clearColor];
} /**
Cell 被选中或者取消选中是都会被调用
如果是自定义Cell控件,所有的子控件都应该添加到contentView中
*/
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated]; if (selected) {
self.contentView.backgroundColor = [UIColor redColor];
} else {
self.contentView.backgroundColor = [UIColor greenColor];
}
}
3、延时执行命令,多线程GCD:
//设置1秒钟后执行块中的代码
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//执行代码
});
---- 补充一下 -----
4、自定义View时,重写构造方法
//使用代码创建对象的时候会调用这个方法,假如自定义View名称叫:MingView , 则:[MingView new] / [[MingView alloc] init] / [[MingView alloc] initWithFrame: CGRectMake(10, 10, 10, 10)]] 最后都会调用重写的- (instancetype)initWithFrame:(CGRect)frame;
- (instancetype)initWithFrame:(CGRect)frame;
//使用xib创建或者用拖控件的方式创建自定义View对象,会调用到重写的- (instancetype)initWithCoder:(NSCoder *)aDecoder;
- (instancetype)initWithCoder:(NSCoder *)aDecoder;
举例:
- (instancetype)init{
NSLog(@"init ... 111 "); if (self = [super init]){
NSLog(@"init ... 222 ");
}
return self;
} - (instancetype)initWithFrame:(CGRect)frame{
NSLog(@"initWithFrame ... 111"); if (self = [super initWithFrame:frame]){
NSLog(@"initWithFrame ... 222");
}
return self;
} - (instancetype)initWithCoder:(NSCoder *)aDecoder{
NSLog(@"initWithCoder ... 111 "); if (self = [super initWithCoder:aDecoder]){
NSLog(@"initWithCoder ... 222 ");
}
return self;
}
/*
1、纯代码创建该自定义对象
a)、使用init、new来创建对象,打印日志:
init ... 111
initWithFrame ... 111
initWithFrame ... 222
init ... 222
b)、使用initWithFrame来创建对象,打印日志:
initWithFrame ... 111
initWithFrame ... 222
总结:纯代码创建对象都会调用initWithFrame构造方法 2、使用xib或者拖控件的方式来创建对象
大致同上,只是把initWithFrame改成initWithCoder
总结:使用xib或拖控件的方式都会调用initWithCoder构造方法
*/
UITableViewController和延时执行、自定义控件的更多相关文章
- iOS中延时执行的几种方式的比较和汇总
本文列举了四种延时执行某函数的方法及其一些区别.假如延时1秒时间执行下面的方法. - (void)delayMethod { NSLog(@"execute"); } 1.perf ...
- IOS中延时执行的几种方式的比较
本文列举了四种延时执行某函数的方法及其一些区别.假如延时1秒时间执行下面的方法. - (void)delayMethod { NSLog(@"execute"); } 1.perf ...
- mysql定时执行及延时执行,实现类似sql server waitfor功能
熟悉SQL Server的人都知道,它有一个很有用的功能,waitfor time和waitfor delay,前者表示在某个时间执行,后者表示等待多长时间执行.在我们测试功能和定时执行的时候特别有用 ...
- iOS延时执行的四种方法
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- javascript 延时执行函数
延时执行函数,貌似有些多此一举, 也许还是有点用 记在这儿 var test = { delay : function(lifetime){ var data; setTimeout(function ...
- iOS开发之延时执行
方法1: performSelector(SEL) withObjects:(id) afterDelay:(NSTimeInterval); 方法2: dispatch_after(dispatch ...
- (十一)延时执行、圆角(可实现圆形label)、代理设计模式
延时执行: 使用控件的performSelector...方法,例如用于移除,可以写在一行. [lab performSelector:@selector(removeFromSuperview) w ...
- 同时对view延时执行两个动画时候的现象
同时对view延时执行两个动画时候的现象 对于view延时执行了两个动画后,会将第一个动画效果终止了,直接在第一个动画的view的最后的状态上接执行后续的动画效果,也就是说,我们可以利用这个特性来写分 ...
- iOS:延时执行的三种方式
延时执行的三种方式:performSelectorXXX方法.GCD中延时函数.创建定时器 第一种方式:NSObject分类当中的方法,延迟一段时间调用某一个方法 @interface NSObj ...
随机推荐
- Linux下通过源码编译安装程序
本文简单的记录了下,在linux下如何通过源码安装程序,以及相关的知识.(大神勿喷^_^) 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件: ...
- JS&CSS文件请求合并及压缩处理研究(四)
本篇将会尝试对之前的代码进行相关的单元测试,验证路径合并规则的覆盖率及正确性. 熟悉 ASP.NET MVC 开发的朋友应该知道,微软在MVC框架下集成了一款名为 Microsoft.VisualSt ...
- Java魔法堂:枚举类型详解
一.前言 Java的枚举类型相对C#来说具有更灵活可配置性,Java的枚举类型可以携带更多的信息. // C# enum MyColor{ RED = , BLUE = } Console.Write ...
- C++二维码相关库编译
一.瞎想 坐在地铁上闲来无聊,突然想到了二维码,顺手就百度了下相关的资料,目前C++二维码相关的库不多,也就zbar(开源中国上下了半天也没下载下来).zxing,不过这两个库据说都是解析二维码的,不 ...
- php面向对象常见的专业术语
类 − 定义了一件事物的抽象特点.类的定义包含了数据的形式以及对数据的操作. 对象 − 是类的实例. 成员变量 − 定义在类内部的变量.该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化 ...
- 【转】NoSQL初探之人人都爱Redis:(3)使用Redis作为消息队列服务场景应用案例
一.消息队列场景简介 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象.消息被发送到队列中,“消息队列”是在消息的传输过程中保存消息的容器 ...
- C#的变迁史 - C# 5.0 之并行编程总结篇
C# 5.0 搭载于.NET 4.5和VS2012之上. 同步操作既简单又方便,我们平时都用它.但是对于某些情况,使用同步代码会严重影响程序的可响应性,通常来说就是影响程序性能.这些情况下,我们通常是 ...
- C# ~ 由 IDisposable 到 GC
IDisposable 接口 1. 托管资源和非托管资源 · 托管资源 a. CLR 控制和管理的内存资源,如程序中在 Heap 上分配的对象.作用域内的变量等: b. GC 机制实现自 ...
- 【Java每日一题】20161116
package Nov2016; public class Ques1116 { public static void main(String[] args){ System.out.println( ...
- 《Head First Java》——认识变量
对象的引用 Book b = new Book(); Book c = new Book(); Book d = c; // 声明新的Book引用变量,但不创建新的 ...