1.獲得項目中info.plist文件的內容
1> [NSBundle mainBundle].infoDictionary
2> 版本號在info.plist中的key:kCFBundleVersionKey
[NSString stringWithFormat:@"%@%@",@"版本號:",[[NSBundle mainBundle].infoDictionary objectForKey:@"CFBundleShortVersionString"]]
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到屏幕上
* 使用了autolayout;解決方案取消使用autolayout,或者調用 [self.imageview1setTranslatesAutoresizingMaskIntoConstraints:YES];
2> 一個UIScrollView無法滾動
* contentSize沒有值
* 不能接收到觸摸事件
3> 一個控件無法跟用戶交互(無法接收事件)的可能原因
* (父控件的)userInteractionEnabled =NO;
* (父控件的)hidden =YES
* (父控件的)alpha <=0.01
* (父控件的)背景是clearColor
7.按鈕的設置
// 高亮狀態下不更改圖片的顏色
self.adjustsImageWhenHighlighted =NO;
// 是否選中狀態
self.selected = YES;
// 是否可用狀態
self.enabled = YES;
8:設置全屏
1>在info.plist中把Status bar hidden 設置成YES;
2>如果還不成功,再添加一個新row,
View controller-based status bar appearance設置成NO.
9常用配製
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640,1136), [[UIScreen mainScreen] currentMode].size) : NO)
#define iPhone4 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640,960), [[UIScreen mainScreen] currentMode].size) : NO)
#define iosDevice [[[UIDevice currentDevice] systemVersion] floatValue]
#define kDeviceWidth [UIScreen mainScreen].bounds.size.width
#define KDeviceHeight [UIScreen mainScreen].bounds.size.height
#ifdef DEBUG
#define MyLog(FORMAT, ...) fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define MyLog(FORMAT, ...) nil
#endif