APP开发小知识点
发布时间:2021-12-07 15:48 浏览次数:次
1.获得项目中info.plist文件的内容
1> [NSBundle mainBundle].infoDictionary
2> 版本号在info.plist中的key:kCFBundleVersionKey
2.自定义控制器的view
重写loadView方法(不需要调用[super loadView])
3.控制器view的高度和状态栏的关系
创建控制器的view时,系统会检测状态栏是否显示
* 如果有状态栏,那么控制器view的高度是460(iPhone5中是548)
* 如果没有状态栏,那么控制器view的高度是480(iPhone5中是568)
4.[UIScreen mainScreen].applicationFrame的取值
以3.5inch为例(320x480)
1> 没有状态栏,applicationFrame的值{{0, 0}, {320, 480}}
2> 有状态栏,applicationFrame的值{{0, 20}, {320, 460}}
5.按钮的状态
UIControlStateNormal 普通(默认的状态)
UIControlStateHighlighted 高亮(用户长按的时候)
UIControlStateDisabled 失效(通过代码控制:enabled属性)
UIControlStateSelected 选中(通过代码控制:selected属性)
6.错误调试技巧
1> 一个控件无法显示出来的可能原因
* 没有宽高(宽高为0)
* 位置不对
* hidden=YES
* 没有被addSubview到屏幕上
2> 一个UIScrollView无法滚动
* contentSize没有值
* 不能接收到触摸事件
3> 一个控件无法跟用户交互(无法接收事件)的可能原因
* (父控件的)userInteractionEnabled = NO;
* (父控件的)hidden = YES
* (父控件的)alpha <= 0.01
* (父控件的)背景是clearColor
7.按钮的设置
// 高亮状态下不更改图片的颜色
self.adjustsImageWhenHighlighted = NO;
// 是否选中状态
self.selected = YES;
// 是否可用状态
self.enabled = YES;
一、按钮的设置
0.设置背景图片
[btn setBackgroundImage:image forState:UIControlStateNormal];
1.设置内部UIImageView的图片
[btn setImage:image forState:UIControlStateNormal];
// 不能写成btn.imageView.image = image;
2.设置内部UILabel的文字
[btn setTitle:@"43" forState:UIControlStateNormal];
// 不能写成btn.titleLabel.text = @"43";
3.调整内部ImageView的frame
- (CGRect)imageRectForContentRect:(CGRect)contentRect
4.调整内部UILabel的frame
- (CGRect)titleRectForContentRect:(CGRect)contentRect
5.覆盖父类在highlighted时的所有操作
- (void)setHighlighted:(BOOL)highlighted { }
6.文字居中
self.titleLabel.textAlignment = NSTextAlignmentCenter;
7.文字大小
self.titleLabel.font = [UIFont systemFontOfSize:12];
8.图片的内容模式
self.imageView.contentMode = UIViewContentModeCenter;
二、添加子控制器
- (void)addChildViewController:
* 会将子控制器添加到childViewControllers,并且子控制器是有顺序的
* 目的就是持有子控制器,不让子控制器销毁,保证主控制器在,子控制器就在
三、让一个控制器拥有导航栏的最快方法:包装一层导航控制器
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:controller];
四、UIBarButtonItem
1> 创建一个带有文字的item
[[UIBarButtonItem alloc] initWithTitle:@"设置" style:UIBarButtonItemStyleBordered target:nil action:nil]
2> 创建一个包装了自定义View的item
- (id)initWithCustomView:(UIView *)customView
五、设置导航栏UINavigationBar主题
// 1.appearance方法返回一个导航栏的外观对象
// 修改了这个外观对象,相当于修改了整个项目中的外观
UINavigationBar *bar = [UINavigationBar appearance];
// 2.设置导航栏的背景图片
[bar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
// 3.设置导航栏文字的主题
[bar setTitleTextAttributes:@{
UITextAttributeTextColor : [UIColor blackColor],
UITextAttributeTextShadowOffset : [NSValue valueWithUIOffset:UIOffsetZero]
}];
六、设置导航按钮UIBarButtonItem主题
// 1.修改所有UIBarButtonItem的外观
UIBarButtonItem *barItem = [UIBarButtonItem appearance];
// 2.修改item的背景图片
[barItem setBackgroundImage:image1 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[barItem setBackgroundImage:image2 forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
// 3.修改item上面的文字样式
NSDictionary *dict = @{
UITextAttributeTextColor : [UIColor darkGrayColor],
UITextAttributeTextShadowOffset : [NSValue valueWithUIOffset:UIOffsetZero]
};
[barItem setTitleTextAttributes:dict forState:UIControlStateNormal];
[barItem setTitleTextAttributes:dict forState:UIControlStateHighlighted];
七、设置状态栏样式
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;
本文来源于网络,若有侵权请联系3449817223#qq.com,将在第一时间删除。