init/loadView/viewDidLoad/viewDidUnload 这么细节的东西想来大家都不在意,平时也不会去关系,但是在面试时却常常被提到,所以了解viewController的生命周期还是很有必要的.由init.loadView.viewDidLoad.viewDidUnload.dealloc的关系说起init方法在init方法中实例化必要的对象(遵从LazyLoad思想)‍init方法中初始化ViewController本身 loadView方法当view需要被展示而它却是…
一.loadView 永远不要主动调用这个函数.view controller会在view的property被请求并且当前view值为nil时调用这个函数.如果你手动创建view,你应该重载这个函数.如果你用IB创建view并初始化view controller,那就意味着你使用initWithNibName:bundle:方法,这时,你不应该重载loadView函数. 这个方法的默认实现是这样:先寻找有关可用的nib文件的信息,根据这个信息来加载nib文件,如果没有有关nib文件的信息,默认实…
init方法 在init方法中实例化必要的对象(遵从LazyLoad思想) ‍init方法中初始化ViewController本身 loadView方法 当view需要被展示而它却是nil时,viewController会调用该方法.不要直接调用该方法. 如果手工维护views,必须重载重写该方法 如果使用IB维护views,必须不能重载重写该方法 loadView和IB构建view viewDidLoad方法 重载重写该方法以进一步定制view 在iPhone OS 3.0及之后的版本中,还应…
viewDidLoad 此方法只有当view从nib文件初始化的时候才被调用.viewDidLoad用于初始化,加载时用到的. loadView 此方法在控制器的view为nil的时候被调用.虽然经常说loadView是使用代码生成视图的时候,当视图第一次载入的时候调用的方法.用于使用(写)代码来实现控件. 用于使用代码生成控件的函数.但是经过自己实际断点单步操作发现,不管用不用nib,都最先调用loadView,所以说loadView 此方法在控制器的view为nil的时候就会被调用.一般在使…
1.loadView 这是视图控制器用来加载根视图的方法; 如果需要将自定义的视图作为根视图,则不需要调用父类对该方法的实现([super loadView]);直接将自定义视图通过self.view定义为视图控制器的根视图; 自定义视图中的简单响应事件也应由视图控制器来进行处理,写在此方法内; 2.viewDIdLoad 当视图控制器的根视图加载完成之后触发该方法;(也就是loadView调用完成之后会立即调用该方法); 需要调用父类对该方法的实现; 该方法可以对根视图进行简单的一些设置,比如…
我要总结的函数主要是这几个: UIView *view-如果view还没有被初始化的话,getter方法会先调用[self loadView],如果getter或者setter方法被重写了,子类中的getter或者setter方法必须调用super中的getter或者setter方法 init (initWithNibName)-初始化程序,实际上,我们在调用init的时候相当于调用initWithNibName函数参数为空的情况,如果我们重定义init,我们需要在init的函数中加入这一行代码…
iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-UIViewController对象的视图已经加入到窗口时调用: viewWillDisappear-UIViewCont…
原文网址:http://blog.csdn.net/weasleyqi/article/details/8090373 iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-U…
init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-UIViewController对象的视图已经加入到窗口时调用: viewWillDisappear-UIViewController对象的视图即将消失.被覆盖或是隐藏时调用: viewDidDisappear-UIViewController对象的视图已经消失.被覆盖或是隐藏时调用: viewVillUnload-当内存…
loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法总结   首先,区别程序化初始viewcontroller,半程序化初始和IB初始的区别. 1. 代码化初始:完全没有Xib之类的东西,通过纯代码实现加载. 2. 半代码化:设计xib,然后在程序中用代码调用xib来初始化. 3. 完全IB化:设计xib之类,然后加入到其它xib里.如MainWindow.xib中加入rootviewController,而root…
iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-UIViewController对象的视图已经加入到窗口时调用: viewWillDisappear-UIViewCont…
iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-UIViewController对象的视图已经加入到窗口时调用: viewWillDisappear-UIViewCont…
UIView常用属性与方法 @interface UIView : UIResponder<NSCoding, UIAppearance, UIAppearanceContainer, UIDynamicItem> /** * 通过一个frame来初始化一个UI控件 */ - (id)initWithFrame:(CGRect)frame; // YES:能够跟用户进行交互 @property(nonatomic,getter=isUserInteractionEnabled) BOOL us…
闲来无事 观摩别人的项目 常常发现对UIView的hitTest:withEvent:方法的重写,以前也查过这个方法的用法作用,但是时间一长又忘记了.今天再次看到,就记录一下. 用户触摸屏幕后事件的传递过程 当用户点击屏幕后,UIApplication先响应事件,然后传递给UIWindow.如果window可以响应.就开始遍历window的subViews.遍历的过程中,如果第一个遍历的View1可以响应,那就遍历View1的SubViews.(依次这样不停地查找,直至查找到合适的响应事件vie…
一  loadView: 在每次访问 UIViewController时,且其 view = nil 时,会调用这个方法,所以大家在开发中想自己设置 view 的可以用这个方法,在这个方法中自定义 view *所以在以下情况记得使用这个方法: 加载 与控制器绑定的 xib 时 [[GLViewController alloc] initWithNibName:@"GLViewController" bundle:nil]; 如果没有传明显的 xib 文件名,就会加载和控制器 同名的 […
1,UIView的setNeedsDisplay和setNeedsLayout方法 首先两个方法都是异步执行的.而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到  UIGraphicsGetCurrentContext,就可以画画了.而setNeedsLayout会默认调用layoutSubViews, 就可以  处理子视图中的一些数据. 综上所诉,setNeedsDisplay方便绘图,而layoutSubViews方便出来数据. layoutSubviews在…
1.UIView的setNeedsDisplay和setNeedsLayout方法 首先两个方法都是异步执行的.而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到  UIGraphicsGetCurrentContext,就可以画画了.而setNeedsLayout会默认调用layoutSubViews,就可以  处理子视图中的一些数据. 综上所诉,setNeedsDisplay方便绘图,而layoutSubViews方便出来数据. 2.layoutSubviews…
1,UIView的setNeedsDisplay和setNeedsLayout方法 首先两个方法都是异步执行的.而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到  UIGraphicsGetCurrentContext,就可以画画了.而setNeedsLayout会默认调用layoutSubViews, 就可以  处理子视图中的一些数据. 综上所诉,setNeedsDisplay方便绘图,而layoutSubViews方便出来数据. layoutSubviews在…
addSubview: 添加一个子视图到接收者并让它在最上面显示出来.- (void)addSubview:(UIView *)view[讨论]这方法同样设置了接收者为下一个视图响应对象.接收者保留视图.如果你使用removeFromSuperview方法用来把视图移除他的显示列表,那么视图将会被释放.如果你想要在视图移除显示列表後保留并使用这个视图(如果,举个例子,你想要交换一些视图的位置.),你不许保留那个视图在他调用removeFromSuperview前. bringSubviewToF…
addSubview: 添加一个子视图到接收者并让它在最上面显示出来. - (void)addSubview:(UIView *)view  总结:这个方法同样设置了接收者为下一个视图响应对象.接收者保留视图.如果你使用removeFromSuperview方法用来把视图移除他的显示列表,那么视图将会被释放.如果你想要在视图移除显示列表後保留并使用这个视图(如果,举个例子,你想要交换一些视图的位置.),你不许保留那个视图在他调用removeFromSuperview前. bringSubview…
先来了解几个jQuery方法: <li></li> <li></li> <li></li> $("li") -> this -> jQuery对象 ->    { 0 : "li", 1 : "li", 2 : "li", length : 3 } $("<li>aaa")  的效果跟   $("…
初学OC.对init这种方法不是非常了解.我们如今来分别对init方法进行重写以及自己定义,来加深对他的了解. 本样例也是用Person类来进行測试. (一)重写init方法. (1)在Person.h中声明init方法: -(instancetype)init; (2)在Person.m中声明成员变量.以及写一个打印成员变量的函数,而且重写init初始化方法:在重写的方法中.对成员变量进行了赋值.注意,这个init方法是无參数的方法. { NSString *_peopleName; int…
[UIView beginAnimations:nil context:nil]; [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:_imageViewFirst cache:YES]; [UIView setAnimationDuration:1.0f]; [UIView commitAnimations];…
要理解这两个方法.先了解一下用户触摸屏幕后的事件传递过程. 当用户点击屏幕后,UIApplication 先响应事件,然后传递给UIWindow.如果window可以响应.就开始遍历window的subviews.遍历的过程中,如果第一个遍历的view1可以响应,那就遍历这个view1的subviews(依次这样不停地查找,直至查找到合适的响应事件view).如果view1不可以响应,那就开始对view2进行判断和子视图的遍历.依次类推view3,view4……  如果最后没有找到合适的响应vi…
添加一个UIView时,默认直角显示有时对于有强迫症的患者还真有点不舒服! eg: 怎么实现UIview的圆角显示呢? 首先包含一个头文件: #import <QuartzCore/QuartzCore.h> 其次设置两个属性: self.userView.layer.cornerRadius = 2; self.userView.layer.masksToBounds = YES; eg: -(void)setupUI { //set subview round corners self.u…
1.frame 控件所在的矩形框的位置和尺寸(以父控件的左上角为坐标原点) 2.bounds 控件 控件所在的矩形框的位置和尺寸(以自己的左上角为坐标原点,所以bounds的x/y一般为0) 3.center 控件中点位置(以父控件的左上角为坐标原点) 4.tag 控件的ID/表示,父控件可以通过tag了找到对应的子控件 5.superview 获得自己的父控件对象 6.subviews 获得自己的所有子控件对象(新添加的子控件会在subviews数组的最后面) 7.transform 控件的是…
loadView学习总结 UIViewController类或其子类会在初始化时创建一个UIView对象,会作为控制器的默认视图显示出来,可以通过self.view寻址访问.但没有调用loadView方法时,self.view=nil.loadView在每一次使用self.view这个property,并且self.view为nil的时候被调用,用以产生一个有效的self.view.这个接口原本是为了让我们自定义view用的.你在控制器中实现了loadView方法,那么你可能会在应用运行的某个时…
一. 大体流程: (loadView/nib)文件来加载view到内存-->viewDidLoad函数进一步初始化这些view-->内存不足时, 调用viewDidUnload函数释放views-->当需要使用view时又回到第一步loadView:永远不要主导调用这个函数.viewController 会在view的property被请求并且当前view值为nil时调用这个函数.如果你手动创建view, 你应该重载这个函数,切不要在重载的时候调用[super loadView].vie…
ios的viewcontroller生命周期是 init -> loadView -> viewDidLoad -> viewWillAppear -> viewDidAppear -> viewWillDisappear -> viewDidAppear -> viewDidUnload -> dealloc 当我们使用NSNotificationCenter方法,可以在viewDidLoad中添加监听,在dealloc中remove监听,但是有的时候我们…
1.如何通过代码设置Button  title的字体大小 设置Button.titleLabel.font = [UIFont systemFontOfSize:<#(CGFloat)#>] : 2.获取当前时间 NSDate *timeDate=[NSDate date]; NSDateFormatter * dateformatter=[[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"YYYYMMddHH…