--------------------------------------------------------------------------------UIViewController--------------------------------------------------------------------------------
1:视图加载完成显示出来以后调用
-(void)viewDidAppear:(BOOL)animated
{
NSLog(@"视图加载完成显示出来以后调用");
}
2:视图卸载完成以后调用
-(void)viewDidDisappear:(BOOL)animated
{
NSLog(@"视图卸载完成以后调用");
}
3:视图准备加载以后调用
-(void)viewWillAppear:(BOOL)animated
{
NSLog(@"视图准备加载以后调用");
}
4:视图准备卸载以后调用
-(void)viewWillDisappear:(BOOL)animated
{
NSLog(@"视图准备卸载以后调用");
}
5:在程序第一次启动时会加载UIWindow, 此时不要viewDidLoad执行 其他控制器视图的切换函数,因为这样做是没有任何效果的.
如果一定需要:可以在 viewDidAppear 里面执行控制器切换功能.
[self presentModalViewController:bookTabBae animated:NO];
6: 判断ViewController是否已经 执行过viewDidLoad 的方法
[self isViewLoaded]
7:关于 viewDidLoad
ViewController 在实例化以后是不会立刻执行viewDidLoad方法
但是如果触动了与 VIewController 相连接的View 的代码,那么viewDidLoad 就会立刻执行.
立刻改变View 的背景颜色, 将View addSubView 到 其他的地方等,都会触发.
--------------------------------------------------------------------------------UIViewController--------------------------------------------------------------------------------
--------------------------------------------------------------------------------UIView--------------------------------------------------------------------------------
1: 设置指定的View 到顶端
[self.superview bringSubviewToFront:self];
2: 设置指定的View 到底部
[self.superview sendSubviewToBack:self];
3: 将View自己给删除掉
[self removeFromSuperview];
4:View坐标(CGPoint)转换之 convertPoint toView 详细解释
CGPoint point1 = [self.view2 convertPoint:self.btn.frame.origin toView:self.view1];
注: 针对self.view2 中 指定的某个 CGPoint 坐标系 如果填充到 self.view1 视图中时, 那么在self.view1中正确的CGPoint 坐标系 应该是多少?
这个方法的目的是保证给定的坐标系在显示到其他View视图时, 其原本坐标系的显示效果和转换后的显示效果保持一致.如下图所示:
图中的按钮要在不同的View视图显示时,又需要保证显示的位置不管在哪个View时 看起来都是一致. 那么就可以用到此方法获取的正确的坐标
CGPoint point = [self convertPoint:_songIconImageButtonOriginalRect.origin fromView:self.songDetailsContianerView];
NSLog(@"%@ %@",NSStringFromCGPoint(point),NSStringFromCGPoint(_songIconImageButtonOriginalRect.origin));
自己领悟吧..唉~
5:关于视图自适应调整方面的说明和使用
如果视图的autoresizesSubviews属性声明被设置为YES,则其子视图会根据autoresizingMask属性的值自动进行尺寸调整。
自动尺寸调整掩码 | 描述 |
---|---|
这个常量如果被设置,视图将不进行自动尺寸调整。 | |
这个常量如果被设置,视图的高度将和父视图的高度一起成比例变化。否则,视图的高度将保持不变。 | |
这个常量如果被设置,视图的宽度将和父视图的宽度一起成比例变化。否则,视图的宽度将保持不变。 | |
这个常量如果被设置,视图的左边界将随着父视图宽度的变化而按比例进行调整。否则,视图和其父视图的左边界的相对位置将保持不变。 | |
这个常量如果被设置,视图的右边界将随着父视图宽度的变化而按比例进行调整。否则,视图和其父视图的右边界的相对位置将保持不变。 | |
这个常量如果被设置,视图的底边界将随着父视图高度的变化而按比例进行调整。否则,视图和其父视图的底边界的相对位置将保持不变。 | |
这个常量如果被设置,视图的上边界将随着父视图高度的变化而按比例进行调整。否则,视图和其父视图的上边界的相对位置将保持不变。 |
//对父视图设置 允许子视图自适应父视图宽高成长 默认是YES
parentView.autoresizesSubviews=YES;
//对子视图设置适应父视图的方式. 见上图
childrenView.autoresizingMask= (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
6:通过设置View 的 BackGround 实现背景图片的设置
[self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"btn_nofocue02"]]];
注:复制图片原大小的方式,平铺开来,效果如下:
7:关于exclusiveTouch(参考:touchbegan 单个手指的识别----UIView 的exclusiveTouch属性)
exclusiveTouch的意思是UIView会独占整个Touch事件,具体的来说,就是当设置了exclusiveTouch的 UIView是事件的第一响应者,那么到你的所有手指离开前,其他的视图UIview是不会响应任何触摸事件的,对于多点触摸事件,这个属性就非常重要,值得注意的是:手势识别(GestureRecognizers)会忽略此属性。
列举用途:我们知道ios是没有GridView视图的,通常做法是在UITableView的cell上加载几个子视图,来模拟实现 GridView视图,但对于每一个子视图来说,就需要使用exclusiveTouch,否则当同时点击多个子视图,那么会触发每个子视图的事件。当然 还有我们常说的模态对话框。
--------------------------------------------------------------------------------UIView--------------------------------------------------------------------------------