APP开发小知识点

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;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值