超級猜圖
1.重點界面可變元素
1.索引趁怔、描述以及圖片會隨著點擊下一題按鈕自動更換對應(yīng)的內(nèi)容
2.點擊放大按鈕或者圖片本身可以放大圖片,且圖片放大后
有一層半透明的遮蓋處在圖片后面,遮蓋住屏幕上的的其他內(nèi)容點擊遮蓋或者其圖片可以將圖片恢復(fù)大小对途,
并且遮蓋消失拥峦。
3.每次點擊下一題按鈕邓了,下方的答案框數(shù)答案文字選項也隨之改變庞钢。
4.點擊下方候選答案按鈕瞳购,此按鈕隱身并且按順序顯示到上方的答案框中。
5.自動判斷答案是否填滿玖绿,填滿后檢測是否正確敛瓷,正確顯示藍(lán)色,并自動跳到下一題同時加分斑匪;錯誤顯示紅色呐籽。
6.點擊提示按鈕,顯示正確答案的第一個文字蚀瘸,并且扣分狡蝶。
2.部分新知識點
<p>
2.1.KVC鍵值對編碼
- (instancetype) initWithDict:(NSDictionary *)Dict{
//** 對模型進(jìn)行賦值 */
if (self = [super init]) {
[self setValuesForKeysWithDictionary:Dict];
}
return self;
}
其中setValuesForKeysWithDictionary:方法
可以批量將字典中的元素賦值到對應(yīng)名稱的self成員變量中,字典中有幾個鍵值對,
就可以有幾個與key相同的成員變量贮勃,要求字典鍵值名稱必須與模型成員名稱相同贪惹,
便可自動復(fù)制。字典中的鍵值對可不全部顯示出來寂嘉。
KVC還可以查找路徑
NSArray *array = [ persons valueForKeyPath: @“name”]
KVC按照路徑取值時奏瞬,如果對象不包含指定對象時,會自動進(jìn)入對象內(nèi)部泉孩,查找對象屬性硼端。
<p>
2.2.懶加載固定模式
- (NSArray *)questions
{
if (_questions == nil) {
// 1.加載plist
NSArray *tempArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"questions" ofType:@"plist"]];
// 2.創(chuàng)建模型數(shù)組
NSMutableArray *arrayM = [NSMutableArray array];
for (NSDictionary *dict in tempArray) {
[arrayM addObject:[HZHquestions questionWithDict:dict]];
}
_questions = arrayM;
}
return _questions;
}
先判斷為空,再加載plist文件棵譬,使用for循環(huán)創(chuàng)建模型數(shù)組显蝌,將模型數(shù)組保存到成員變量數(shù)組中。
<p>
2.3.設(shè)置狀態(tài)欄顯示
// 設(shè)置狀態(tài)欄高亮顯示
- (UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
// 設(shè)置狀態(tài)欄常規(guī)顯示
- (UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleDefault;
}
// 設(shè)置狀態(tài)欄可見性
- (BOOL)prefersStatusBarHidden{
return YES;
}
狀態(tài)欄默認(rèn)是顯示黑色
高亮狀態(tài)顯示白色
<p>
2.4.將圖片對象移到遮蓋對象的前面
[self.view bringSubviewToFront:self.pictureView]
<p>
2.5.將控件設(shè)為隱藏
option.hidden = YES;
<p>
2.6.取出控件的title
NSString *temp = [btn titleForState:UIControlStateNormal];
<p>
2.7.啟動畫面及APP圖標(biāo)
只要文件名為 “Icon.png”订咸,就會被設(shè)置為APP圖標(biāo)曼尊。
一個app在啟動過程中會全屏顯示叫做Default.png的圖片。
不用規(guī)格Default的使用場合
Default.png:非retina-iPhone屏幕脏嚷,320x480
Default@2x.png:retina-iPhone屏幕骆撇,640x960
Default-568h@2x.png:4inch的retina-iPhone屏幕,640x1136
Default-Portrait~ipad.png:非retain-iPad豎屏屏幕父叙,768x1024
Default-Portrait~ipad@2x.png:retain-iPad豎屏屏幕神郊,1536x2048
Default-Landscape~ipad.png:非retain-iPad橫屏屏幕,1024x768
Default-Landscape~ipad@2x.png:retain-iPad橫屏屏幕趾唱,2048x1536
<p>
2.8.設(shè)置內(nèi)邊距制造相框效果
使用白色的圖片作為背景圖片涌乳,然后設(shè)置圖片的邊距Insert。即得到如右圖的效果甜癞。
<p>
2.9.大圖時的動畫
創(chuàng)建一個按鈕夕晓,背景色黑色,設(shè)置其透明度alpha悠咱。
用block代替頭尾式動畫蒸辆,效率高征炼。
[UIView animateWithDuration:2.0 animations:^{
//存放需要執(zhí)行的動畫
cover.alpha = 0.6;
CGFloat headW = self.view.frame.size.width;
CGFloat headH = headW;
CGFloat headX = 0;
CGFloat headY = 0.5 * (self.view.frame.size.height- headH);
self.head.frame = CGRectMake(headX, headY, headW, headH);
}];
<p>
2.10.點擊選項按鈕
(1)被點擊的選項按鈕消失(hidden = YES)
(2)將選中選項的文字放到答案區(qū)的按鈕上
(3)把文字放到第一個沒有文字的答案按鈕上
(4)點擊有文字的答案按鈕,文字恢復(fù)到選項
(5)答案填滿后躬贡,阻止事件觸發(fā)