麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

一周隨筆--15.10.27

2019-11-14 18:04:14
字體:
供稿:網(wǎng)友

一周新知識(shí)點(diǎn)記錄(15.10.27)

一、不規(guī)則按鈕OBShapedButton

常規(guī)按鈕都是一個(gè)矩形區(qū)域,即使設(shè)置了按鈕layer的cornerRadious,能響應(yīng)點(diǎn)擊事件的依舊是整個(gè)矩形區(qū)域。

OBShapedButton是開源的第三方庫(kù),直接繼承自UIButton,直接使用即可。它的響應(yīng)區(qū)域只限定在button的圖片或者背景圖片區(qū)域,周圍空出的區(qū)域無法響應(yīng)。注意只是響應(yīng)區(qū)域縮小了,frame還是原來的frame。


 二、sendActionsForControlEvents

UIButton的實(shí)例方法,通過代碼手動(dòng)發(fā)送按鈕的點(diǎn)擊事件觸發(fā)按鈕的響應(yīng)方法。


三、ios時(shí)間的時(shí)區(qū)瓜葛

代碼中所有得到的NSDate都是UTC時(shí)間(國(guó)際標(biāo)準(zhǔn)時(shí)間,同GMT時(shí)間),例如打印[NSDate date],打印結(jié)果總會(huì)是UTC時(shí)間,不管設(shè)備的時(shí)區(qū)怎么更變。

那么在處理時(shí)間的時(shí)候是不是要在時(shí)區(qū)上下一番工夫呢?例如后臺(tái)返回一個(gè)時(shí)間字符串,我想改變它的格式,需要做的是先得到時(shí)間字符串的date,然后重新設(shè)置格式得到新的時(shí)間字符串。之前說過所有的Date都是UTC時(shí)間,因此,打印中間得到的date會(huì)發(fā)現(xiàn)時(shí)間比當(dāng)前慢了8小時(shí)(假設(shè)當(dāng)前系統(tǒng)時(shí)區(qū)為東8區(qū)),那么用這個(gè)時(shí)間來生成新的string,結(jié)果會(huì)不會(huì)就慢8小時(shí)呢?答案是不會(huì)的,因?yàn)闀r(shí)間格式NSDateFormatter有timezone屬性,這個(gè)屬性的值默認(rèn)為當(dāng)前系統(tǒng)時(shí)區(qū),因此從dete轉(zhuǎn)換到string的時(shí)候,系統(tǒng)計(jì)算時(shí)自動(dòng)地在UTC時(shí)間上加了系統(tǒng)時(shí)區(qū)的偏差時(shí),所以還是原來的時(shí)間,并不會(huì)慢8小時(shí)。另外中間date慢了8小時(shí)也是根據(jù)dateFormatter的timezone值來的。

除了NSDateFormatter,日歷類NSCalendar也有timeZone屬性。假設(shè)現(xiàn)在獲取到了一個(gè)日期date對(duì)應(yīng)的dateComponents,打印date查看發(fā)現(xiàn)時(shí)間慢8小時(shí),而打印dateComponents的hour查看,發(fā)現(xiàn)并不會(huì)慢8小時(shí),打印結(jié)果就是當(dāng)前小時(shí)。因?yàn)樵趶膁ate->dateComponents需要借助NSCalendar對(duì)象,而calendar同樣有個(gè)timeZone屬性,默認(rèn)也是當(dāng)前系統(tǒng)時(shí)區(qū),轉(zhuǎn)換過程中會(huì)自動(dòng)加上時(shí)區(qū)偏差小時(shí)數(shù)(時(shí)差)。

因此在時(shí)區(qū)問題上通常并不需要做多余處理。


四、關(guān)于PResent popoverController時(shí)的警告

若當(dāng)前視圖控制器的顯示是add視圖控制器的view是到上層視圖控制器的某個(gè)view中,而不是Push到UInavagationController中或者是在UITabbarController容器中的,也就是說這個(gè)控制器未處在當(dāng)前app的堆棧中,那么從這個(gè)視圖控制器present另一個(gè)視圖控制器或者popover會(huì)發(fā)出警告 Presenting view controllers on detached view controllers!


 

五、使用UITableView+FDTemplateLayoutCell自動(dòng)計(jì)算Cell高度

之前計(jì)算Cell的高度都是根據(jù)Cell內(nèi)容空間逐個(gè)計(jì)算高度然后相加得到一個(gè)確定值,這樣當(dāng)控件數(shù)量多,或者像label這種要根據(jù)文本長(zhǎng)度自適應(yīng)高度的控件,在計(jì)算label的高度的時(shí)候也要計(jì)算文本高度才行,多么蛋疼的事!有了UITableView+FDTemplateLayoutCell,cell高度計(jì)算問題會(huì)省力很多!

 UITableView+FDTemplateLayoutCell 簡(jiǎn)單來說,一句話解決cell高度計(jì)算的問題。

在heightForRowAtIndexPath代理方法中寫

return [tableView fd_heightForCellWithIdentifier:@"identifierMyCell" cacheByIndexPath:indexPath configuration:^(id cell) {       //cell的可變內(nèi)容配置 例如label的text,用來確定高度}];

這樣tableView就能自動(dòng)根據(jù)cell的autoLayout情況計(jì)算出高度。

因此使用該方法的前提是cell內(nèi)容控件的自動(dòng)布局一定要準(zhǔn)確??梢?span id="70qarhlowxag" class="s1">IB中布局也可以純代碼自動(dòng)布局,個(gè)人習(xí)慣使用Masonry代碼布局。 


六、判斷是否是第一次使用app

[[NSUserDefaults standardUserDefaults] boolForKey:@"firstStart"]可以用來判斷是否是第一次使用app。

第一次啟動(dòng)前為NO,啟動(dòng)后要手動(dòng)設(shè)為YES

 


七、關(guān)于在UINavagationControllerUItabBarControllerview上添加視圖

若直接對(duì)UINavagationController.view或者UItabBarController.view添加視圖myView,對(duì)前者而言,push了一個(gè)viewController之后,myView不會(huì)被覆蓋,依舊顯示在屏幕最前面。對(duì)后者而言,切換viewController后,myView同樣顯示在老地方。

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美成人se01短视频在线看 | 欧美成人一区二区三区电影 | wankz100%videos| 北京一级毛片 | 日韩色视频在线观看 | 福利免费在线观看 | 久久欧美亚洲另类专区91大神 | 精品一区二区电影 | 激情宗合 | 欧美不卡在线 | 成人福利视频在线观看 | 黄色三级三级三级 | 欧美 亚洲 激情 | 91一级毛片 | 麻豆国产网站 | 久久久久久久九九九九 | 久久精品视频16 | 日本va在线观看 | 偿还的影视高清在线观看 | 久久综合久久综合久久综合 | 欧美亚洲一级 | 一级毛片大片 | 国产美女自拍av | 欧美综合在线观看 | 九九精品久久 | 精品国产一区二区三区四区在线 | 午夜视频大全 | aaaaaaa毛片 | 国产亚洲精品yxsp | 宅男噜噜噜66国产在线观看 | 久章草影院| 欧美一级高潮片免费的 | 日韩一级成人 | 中文字幕免费一区 | 88xx成人精品视频 | 国产精品久久久久久久成人午夜 | 精品在线一区二区三区 | 国产999视频在线观看 | 黄色试看视频 | 精品国产一区二区三区四区阿崩 | 色婷婷久久久亚洲一区二区三区 |