iOS開(kāi)發(fā)隨手記

1.在iOS11之后調(diào)用[tableView reloadData];當(dāng)數(shù)據(jù)多的情況下會(huì)出現(xiàn)閃屏的情況汁针,解決這種情況有以下兩種發(fā)方法:

1.1

_tableView.estimatedRowHeight = 0;
_tableView.estimatedSectionHeaderHeight = 0;
_tableView.estimatedSectionFooterHeight = 0;

1.2

__weak typeof (self)wself = self;
[UIView performWithoutAnimation:^{
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:2 inSection:0];
    [wself.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
 }];

2.ViewController內(nèi)容向下偏移的問(wèn)題

2.1

從iOS7開(kāi)始,蘋(píng)果把self.navigationController.navigationBar.translucent = YES 作為默認(rèn)處理症概。對(duì)此蘋(píng)果注釋的解釋為 // Default is NO on iOS 6 and earlier. Always YES if barStyle is set to UIBarStyleBlackTranslucent
當(dāng)你將導(dǎo)航欄設(shè)置為不透明時(shí)(self.navigationController.navigationBar.translucent = NO;)這時(shí)候就會(huì)出現(xiàn)一個(gè)問(wèn)題,當(dāng)你push的控制器以ScrollView或TableView為主View時(shí)酪夷,模糊處理會(huì)使?fàn)顟B(tài)欄和NavigationBar擋住后面的視圖酪耕,所以蘋(píng)果會(huì)自動(dòng)把主View的內(nèi)容向下移動(dòng)64px,同理滓彰,底部Tabbar會(huì)使主View向上偏移49px控妻,Toolbar會(huì)使主View向上偏移44px 。這時(shí)候可以通過(guò)2.2的方法設(shè)置他不向下偏移揭绑。

2.2

UIScrollerView 在iOS10弓候,如果上一個(gè)頁(yè)面隱藏導(dǎo)航欄或者當(dāng)前ViewController的導(dǎo)航欄設(shè)置為不透明狀態(tài),那么下一個(gè)頁(yè)面的autoAdjust需取消或者其UIScrollerView的top-margin約束于該controller的view的top他匪。也可以通過(guò)代碼實(shí)現(xiàn)實(shí)現(xiàn):

    if (@available(iOS 11.0, *)) {
        scrollview.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    } else {
        self.automaticallyAdjustsScrollViewInsets = NO;
    }

3.UITabBarController模態(tài)彈出ViewController

當(dāng)在UITabBarController的viewDidLoad中執(zhí)行[self presentViewController:vc animated:YES completion:nil];時(shí)報(bào)錯(cuò)如下:

Warning: Attempt to present <ViewController: 0x104f12010> on <TabbarViewController: 0x105020800> whose view is not in the window hierarchy!

原因是當(dāng)前Tabbar還未初始完成菇存,解決方法是:只要將[self presentViewController:vc animated:YES completion:nil];寫(xiě)在viewDidAppear就可以了.

4.Storyboard/xib的UIButton當(dāng)調(diào)用setTitle的時(shí)候出現(xiàn)文字閃動(dòng)的情況,只需要將該type改為UIButtonTypeCustom就好了邦蜜,因?yàn)橄到y(tǒng)默認(rèn)為UIButtonTypeSystem依鸥。

5.transitionFromViewController切換ViewController容易出現(xiàn)的UI問(wèn)題:

UIViewController *oldViewController = _currentVC;
    UIViewController *newController = sender.selectedSegmentIndex ? _warnningVC : _equipmentVC;
    newController.view.frame = _contentView.bounds;
    [self transitionFromViewController:oldViewController toViewController:newController duration:1.0 options:UIViewAnimationOptionTransitionNone animations:nil completion:^(BOOL finished) {
        _currentVC = newController;
        sender.userInteractionEnabled = YES;
    }];

newController.view.frame = _contentView.bounds;這里必須給newController重新設(shè)置frame,否則會(huì)出現(xiàn)UI適配問(wèn)題。

6.iOS編碼規(guī)范

6.1 私有變量

以 _ 開(kāi)頭悼沈,第一個(gè)單詞首字母小寫(xiě)贱迟,后面的單詞的首字母全部大寫(xiě)。
eg:UILabel *_nameLbl;

6.2 property變量

小駝峰式命名:第一個(gè)單詞以小寫(xiě)字母開(kāi)始絮供,后面的單詞的首字母全部大寫(xiě)
Block衣吠、NSString屬性應(yīng)該使用copy關(guān)鍵字
禁止使用synthesize關(guān)鍵詞
eg:@property (nonatomic, readwrite, copy) NSString *userName;

6.3 宏和常量

6.3.1 宏

#define 預(yù)處理定義的常量全部大寫(xiě),單詞間用 _ 分隔

宏定義中如果包含表達(dá)式或變量壤靶,表達(dá)式或變量必須用小括號(hào)括起來(lái)缚俏。

6.3.2 常量

對(duì)于局限于某編譯單元(實(shí)現(xiàn)文件)的常量,以字符k開(kāi)頭,例如kAnimationDuration袍榆,且需要以static const修飾
對(duì)于定義于類頭文件的常量胀屿,外部可見(jiàn),則以定義該常量所在類的類名開(kāi)頭包雀,例如EOCViewClassAnimationDuration, 仿照蘋(píng)果風(fēng)格宿崭,在頭文件中進(jìn)行extern聲明,在實(shí)現(xiàn)文件中定義其值

//宏定義的常量

#define ANIMATION_DURATION 0.3 
#define MY_MIN(A, B) ((A)>(B)?(B):(A)) 

//局部類型常量
static const NSTimeInterval kAnimationDuration = 0.3;

//外部可見(jiàn)類型常量

//EOCViewClass.h 
extern const NSTimeInterval EOCViewClassAnimationDuration; 
extern NSString *const EOCViewClassStringConstant; //字符串類型 
//EOCViewClass.m const NSTimeInterval EOCViewClassAnimationDuration = 0.3; NSString *const EOCViewClassStringConstant = @"EOCStringConstant";

7.SourceTree保存密碼--解決每次pull才写、push都要輸入兩次密碼的問(wèn)題

提供一個(gè)簡(jiǎn)單的解決方法葡兑,即在遠(yuǎn)程倉(cāng)庫(kù)的url中顯示輸入username和password,每次就不用再重復(fù)輸入赞草,當(dāng)然也有一定的安全隱患讹堤,可根據(jù)實(shí)際情況決定是否采用。

1)選中菜單:Repository(倉(cāng)庫(kù))-- Repository settings(倉(cāng)庫(kù)設(shè)置) --Remotes--選中url--Edit厨疙;
2)比如URL為:http://xxxxx/xxxx.git 修改為:http://username:password@xxxxx/xxxx.git (即新增username:password@)
username和password分別為你登錄的用戶名和密碼洲守,之后就不用每次都輸入密碼了。
個(gè)人實(shí)踐:主要設(shè)置一個(gè)沾凄、拉取梗醇、刪除用戶名密碼—都可以了

8.OC項(xiàng)目中pod ReactiveCocoa 報(bào)錯(cuò)

屏幕快照 2018-11-30 下午5.16.28.png

刪除reactiveCocoa 里面所有的swift文件 刪除result文件夾里面所有文件 刪除result.framework
重新pod install

9.TableView設(shè)置為UITableViewStyleGrouped時(shí)頂部有空白占位View

這是因?yàn)楫?dāng)tableView為UITableViewStyleGrouped時(shí),蘋(píng)果會(huì)給其headerView和footView一個(gè)默認(rèn)高度撒蟀,只要設(shè)置self.tableView.tableHeaderView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 0, 0.01)];就行了叙谨,注意高度必須大于0,0的話會(huì)拿系統(tǒng)默認(rèn)的高度保屯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末手负,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子姑尺,更是在濱河造成了極大的恐慌竟终,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件股缸,死亡現(xiàn)場(chǎng)離奇詭異衡楞,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)敦姻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)歧杏,“玉大人镰惦,你說(shuō)我怎么就攤上這事∪蓿” “怎么了旺入?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我茵瘾,道長(zhǎng)礼华,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任拗秘,我火速辦了婚禮圣絮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雕旨。我一直安慰自己扮匠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布凡涩。 她就那樣靜靜地躺著棒搜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪活箕。 梳的紋絲不亂的頭發(fā)上力麸,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音育韩,去河邊找鬼末盔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛座慰,可吹牛的內(nèi)容都是我干的陨舱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼版仔,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼游盲!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蛮粮,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤益缎,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后然想,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體莺奔,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年变泄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了令哟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡妨蛹,死狀恐怖屏富,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蛙卤,我是刑警寧澤狠半,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布噩死,位于F島的核電站,受9級(jí)特大地震影響神年,放射性物質(zhì)發(fā)生泄漏已维。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一已日、第九天 我趴在偏房一處隱蔽的房頂上張望垛耳。 院中可真熱鬧,春花似錦捂敌、人聲如沸艾扮。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)泡嘴。三九已至,卻和暖如春逆济,著一層夾襖步出監(jiān)牢的瞬間酌予,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工奖慌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抛虫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓简僧,卻偏偏與公主長(zhǎng)得像建椰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子岛马,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容