先用一張圖展現進修IOS開辟應當控制的常識系統:
1.全圖片作為配景的時刻,能夠碰到的成績。,滑回的時刻,圖片逗留了一會才滑歸去。
緣由: 這類界面普通應用普通用imageView的第三種填充方法。
這類填充方法可讓圖片不被緊縮變形的條件下,盡量去填充全部控件,然則設置這個列舉的填充方法的時刻,記得依照下圖如許設置,將超越控件規模的給切割失落
設置束縛的時刻,記得選擇currentview的誰人對象
2.裝備適配的成績
照樣下面這張圖片,依照設計在6p下面來設置主動束縛,約好後,在5s下面的時刻,上面的愛心在主動束縛的設置上面和專業設置太近,這時候候挺影響雅觀的,這時候候第一反響固然是依據裝備來停止調劑,然則我認為這裡完整可使用上面這類方法來停止斷定設置
CGFloat top = 0; CGFloat left = 0; CGFloat bottom = 0; CGFloat right = 0; if ([UIScreen ff_screenSize].width == 375) { top = 80; left = 70; bottom = 31; self.titleLabel.font = [UIFont systemFontOfSize:18]; self.englishLabel.font = [UIFont systemFontOfSize:20]; self.introduceLabel.font = [UIFont systemFontOfSize:14]; right = 33; }else if ([UIScreen ff_screenSize].width == 414){ bottom = 31; top = 88; left = 84; right = 33; }else if ([UIScreen ff_screenSize].width == 320){ self.titleLabel.font = [UIFont systemFontOfSize:16]; self.englishLabel.font = [UIFont systemFontOfSize:18]; self.introduceLabel.font = [UIFont systemFontOfSize:13]; self.introduceTop.constant = 8; top = 70; left = 44; bottom = 24; right = 28; } self.collectionButtonLeft.constant = right; self.chineseLabelTop.constant = top; self.introlduceLeft.constant = left; self.collectionButtonbottom.constant = bottom; [self.view setNeedsLayout];
記得修正束縛後挪用一下[self.view setNeedsLayout];
這也是很症結的一點,不挪用沒有用果。
3.數字動畫後果
在觸及到數字比擬年夜的數據的時刻可以采用這個後果來做,後果動人。
想完成這類後果也比擬簡略。
@property (weak, nonatomic) IBOutlet UICountingLabel *tuitionLabel; weakSelf.tuitionLabel.text = self.tuitionForAcademyModel.tuition; NSInteger grade = [self.tuitionForAcademyModel.tuition integerValue]; weakSelf.tuitionLabel.format = @"%d%"; [weakSelf.tuitionLabel countFromZeroTo:grade];
最主要的一步是設置format,否則他會跑小數的。
4.label文字間距若何調劑
- (void)configureContentLabelText { NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:@"Label"]; long number = 5; CFNumberRef num = CFNumberCreate(kCFAllocatorDefault,kCFNumberSInt8Type,&number); [attributedString addAttribute:(id)kCTKernAttributeName value:(__bridge id)num range:NSMakeRange(0,[attributedString length])]; CFRelease(num); self.label.attributedText = attributedString; }
後果以下,字的間距被拉開了
5 . 登錄思緒
a.用戶進入app後,在應用app的進程中,停止須要登錄的操作。
b.這時候候挪用的後台接口普通須要帶上token參數。這時候候由於用戶沒有登錄,沒有token,所以在這裡停止斷定當地能否耐久化了token.
c.當地沒有耐久化token,所以主動彈出登錄框,讓用戶停止登錄
d.用戶登錄終了後將相干數據,特殊是token停止當地耐久化
小細節:
a.每次啟動app的時刻可以將token 停止io操作讀掏出來,保留在單例外面,如許就不消反復的去停止消耗機能的io操作
b.由於項目中自界說控件必弗成少,在控件級其余頁面,須要應用到須要登錄的操作,這時候候就須要發送告訴給對應的掌握器來present login掌握器,由於掌握器級別能力彈出掌握器,如許一來,會發生年夜量的告訴操作,建議可以將login寫在Window下面(這裡由於項目工期緊,發明這個成績的時刻曾經欠好處置,願望後來的兄弟們切記)
c.須要token參數的接口,token參數毛病,這時候候須要後台給一個同一的回調,如許便利集中起來處置
6 . 賬號互踢的思緒
萬萬不要測驗考試在單個頁面行止理。
思緒以下:
1.須要在登錄登出的發送告訴到各個掌握器,並在告訴外面停止各個掌握器的初始化操作。
2.在挪用須要登錄能力操作的接口的時刻,後台停止斷定給你一個token 參數掉效的回調
3.作為一個公道的項目框架,總該有一個AFN的封裝吧!在封裝的AFN外面停止同一斷定,以下圖。(由於每一個後台處置方法紛歧樣,代碼就上圖吧,給你們代碼也復用不了。)
4.這個告訴發送到了UITabBarController,停止讓用戶從新登錄處置
#import <UIKit/UIKit.h> @interface WXMainController : UITabBarController @end
#pragma mark -監聽賬號互踢,這時候候先加入登錄,然後回到首頁 - (void)addNotification{ WS(weakSelf); // [[NSNotificationCenter defaultCenter] postNotificationName:KMutualKickNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserverForName:KMutualKickNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) { [weakSelf alertWindow]; }]; } #pragma mark-彈出框選擇界面 - (void)alertWindow{ if (!self.isShow) { self.isShow = YES; UIAlertView *alter = [[UIAlertView alloc] initWithTitle:@"" message:@"您的賬號已在其他裝備登錄,如今您曾經處於加入登錄狀況" delegate:self cancelButtonTitle:@"肯定" otherButtonTitles:nil]; [alter show]; } } #pragma mark-彈出框選擇界面的署理辦法,點擊肯定就彈出登錄框 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ if (buttonIndex == 0) { WXLoginController * loginController = [WXLoginController showLoginContoller:NO andIsShowColse:NO]; [self presentViewController:loginController animated:YES completion:nil]; self.isShow = NO; } }
任何工作都無方法和技能,單沒有捷徑,IOS開辟也不破例,踏踏實實從理論中發明辦法,闇練後就有技能。願望本文可以或許贊助的進修IOS開辟的年夜家。
【進步iOS開辟效力的小技能與思緒】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!