UIImage的渲染模式:UIImage.renderingMode
着色(Tint Color)是iOS7界面中的一个新特性。可以设置一个UIImage在渲染时是否使用当前视图的Tint Color。UIImage新增了一个只读属性:renderingMode,对应的还有一个新增方法:imageWithRenderingMode:。该枚举中包含下列值:
UIImageRenderingModeAutomatic // (默认值)根据图片的使用环境和所处的绘图上下文自动调整渲染模式。
UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tint Color。
UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片,忽略图片的颜色信息。
关于init和dealloc使用注意
永远不要自己调用dealloc方法, 在dealloc的最后需要调用super class的dealloc。
在OC中init和dealloc不能使用属性self.property = XXX来进行设置。
最上层VC隐藏Navigation Bar,其他页面都不隐藏。
在第一个视图控制器里写下了如下代码:
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
self.navigationController.navigationBarHidden = YES;
}
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
self.navigationController.navigationBarHidden = NO;
}
这样写导致返回的时候会有黑条。原因就是因为没有动画
正确的写法应该是下面这样。
- (void)viewWillAppear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:YES animated:animated];
[super viewWillAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillDisappear:animated];
}
设置UITabbar选中图片
如果当前viewcontroller既有navigation又有tabbar则需要
UIImage *imgNormal = [UIImage imageNamed:@"home_finding"];
UIImage *imgSelected = [UIImage imageNamed:@"home_finding_hl"];
self.navigationController.tabBarItem.image = [imgNormal imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.navigationController.tabBarItem.selectedImage = [imgSelected imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
注意, 这里直接用self.tabBarItem无效.
//无效
self.tabBarItem.image = [imgNormal imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];