// 自定义初始化方法,通过加载可视化界面开发xib文件来加载控制器自定义界面。
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
// 视图控制器视图加载完成(并未显示出来)
// 视图控制器的入口方法
// 自定义界面初始化,基本用户数据加载,网络请求等。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self initializeAppearance];
NSLog(@"%@", NSStringFromSelector(_cmd));
}
// 视图将要显示
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"%@", NSStringFromSelector(_cmd));
}
// 视图显示完成
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"%@", NSStringFromSelector(_cmd));
}
// 视图将要隐藏
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
NSLog(@"%@", NSStringFromSelector(_cmd));
}
// 视图隐藏完成
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
NSLog(@"%@", NSStringFromSelector(_cmd));
}
- (void)initializeAppearance {
// 配置视图控制器视图背景色,默认透明色,界面推送时透明色会产生残影效果。
self.view.backgroundColor = [UIColor whiteColor];
/* UIView初始化及属性 */
UIView *blackView = [[UIView alloc] initWithFrame:CGRectMake(60, 184, 200, 200)];
// 配置视图背景色
blackView.backgroundColor = [UIColor blackColor];
// 配置视图的透明度,0-1,1表示不透明,0表示透明,当透明度为0时视图默认被隐藏。
blackView.alpha = 1.0;
// 配置视图是否被隐藏,默认为NO
blackView.hidden = NO;
// 配置视图标签,标签值唯一,标签值大于10且为整形。
blackView.tag = 10;
[self.view addSubview:blackView];
[blackView release];
// frame:决定了视图"在父视图坐标系中"的大小和左上角点的位置;
// NSLog(@"frame = %@", NSStringFromCGRect(blackView.frame));
// bounds:决定了视图"在自身坐标系中"的大小和左上角点的位置;
// NSLog(@"bounds = %@", NSStringFromCGRect(blackView.bounds));
// center:决定了视图"在父视图坐标系中"的中心点位置。
// NSLog(@"center = %@", NSStringFromCGPoint(blackView.center));
// subviews:视图所管理的所有子视图集合,视图后添加的在集合的末尾;
// NSLog(@"view subviews = %@", self.view.subviews);
// superview:管理当前视图的父视图。
// NSLog(@"blackview superview = %@", blackView.superview);
/* 视图层级 */
UIView *grayView = [[UIView alloc] initWithFrame:CGRectMake(90, 214, 200, 200)];
grayView.backgroundColor = [UIColor grayColor];
grayView.tag = 11;
// [self.window addSubview:grayView];
// [grayView release];
// 视图调整方法
// [self.window sendSubviewToBack:grayView];
// [self.window bringSubviewToFront:blackView];
// [self.window exchangeSubviewAtIndex:1 withSubviewAtIndex:0];
// 视图插入方法
[self.view insertSubview:grayView belowSubview:blackView];
[grayView release];
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.bounds = CGRectMake(0, 0, 100, 30);
button.center = CGPointMake(160, 450);
[button setTitle:@"确定"
forState:UIControlStateNormal];
[button addTarget:self
action:@selector(buttonPressed:)
forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
- (void)buttonPressed:(UIButton *)sender {
/*
// 通过tag值视图
UIView *blackView = [self.view viewWithTag:10];
UIView *grayView = [self.view viewWithTag:11];
NSLog(@"black view = %@", blackView);
NSLog(@"gray view = %@", grayView);
// 视图移除,父视图负责release子视图一次,视图被释放销毁,内存回收
[blackView removeFromSuperview];
[grayView removeFromSuperview];
*/
/* 视图控制器页面推送:模态视图控制器推送 */
// 1.创建视图控制器
DetailViewController *detailVC = [[DetailViewController alloc] init];
// 2.新控制器推送显示
// 当前控制器会持有被显示的控制器,retainCount + 1
[self presentViewController:detailVC animated:YES completion:^{
// NSLog(@"detail view controller show!");
}];
// 3.新控制器内存管理释放
[detailVC release];
}
// 接收到内存警告时调用
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
iOS开发——视图及视图控制器
最新推荐文章于 2024-06-18 09:42:37 发布