寫在前面
越來越覺得知識(shí)點(diǎn)是這樣的 ,知道了是一回事,總結(jié)起來,又是另外一回事。有時(shí)候,明明知道了,感覺已經(jīng)掌握了這個(gè)知識(shí)點(diǎn),但是總結(jié)起來卻很難,甚至都不知道從何下手,也許還是知識(shí)點(diǎn)沒掌握牢固的緣故。(以下都是小蝦小結(jié),大咖請(qǐng)繞行哦??)
正題
整個(gè)項(xiàng)目主要功能基本完成,測(cè)試也接近尾聲,UI還在不斷的細(xì)調(diào)中。關(guān)于UI發(fā)現(xiàn)的幾個(gè)問題,特此記錄下來。
- 操作類button寬度以及默認(rèn)和點(diǎn)擊狀態(tài)
- 小圖標(biāo)失真
- 背景大圖片尺寸
以上問題,下面會(huì)依次給以詳述,首先簡(jiǎn)單介紹下什么是2倍圖,3倍圖(也就是常見的@2x和@3x)?
iOS開發(fā)中,因?yàn)橛衅胀ㄆ梁透咔迤恋脑?,所以需要在?yīng)用中放置三套圖,一套是for普通屏的,另外兩套是for高清屏的(高清屏里又有分辨率不同的區(qū)別)。for高清屏的命名方式:@2x.png,@3x.png。使用的時(shí)候只要使用for普通屏的圖片,系統(tǒng)在高清屏?xí)r會(huì)自動(dòng)調(diào)用for高清屏的圖片
4以前例如iPone4,iPhone3,iPhone等都是普通屏,4s,5/5s/5c,6/6s,7都是2倍,6p/6sp/7p是3倍(通過這個(gè)api就能知道你當(dāng)前設(shè)備是幾倍的[UIScreen mainScreen].scale)2倍圖3倍圖參考鏈接
UI設(shè)計(jì):
給你們的UI,我們這邊做的是2倍圖,5s適配的
開發(fā)這邊可以理解成下面幾點(diǎn):
- 邊距,間隔或者是圖片大小尺寸,用的時(shí)候統(tǒng)一除以2(3倍圖的話除以3)
- 5s適配,說明UI設(shè)計(jì)的時(shí)候都是以5s為參照標(biāo)準(zhǔn)
問題1:操作類button寬度適配
針對(duì)button默認(rèn)和點(diǎn)擊狀態(tài),分別切了3套圖。2倍圖寬度規(guī)定是576(/2.0之后也就是288個(gè)像素),3倍圖規(guī)定是864(/3.0 之后也是288個(gè)像素)。這樣會(huì)發(fā)現(xiàn)以5s適配,也就是2倍圖并且5s寬度為320 ,button這個(gè)寬度,看上去還行,但是6p 寬度414,顯然感覺寬度不夠。因?yàn)閁I設(shè)計(jì)的時(shí)候是按照5s來適配的,按照設(shè)計(jì)來的話5s當(dāng)然是效果最好的。問題來了,像這種寬度固定是不行的,假如想統(tǒng)一設(shè)備效果的話,最好用masonry布局(當(dāng)然也可以用其它的布局方式),兩邊間距保持一樣就好了。
注意點(diǎn):button設(shè)置normal和selected兩種狀態(tài)圖片,不起作用問題。(原因是button初始化的時(shí)候要設(shè)置成custom而不是系統(tǒng)的)
問題2:小圖標(biāo)失真
多個(gè)cell直接cell.imageView設(shè)置圖片,cell.titleLable.text設(shè)置title,會(huì)發(fā)現(xiàn),文字不會(huì)對(duì)齊,因?yàn)榍械男D標(biāo)的大小不一致,自己手動(dòng)改變大小的話,之后會(huì)發(fā)現(xiàn)失真。解決方法是:自定義imageview和label,之后添加到cell的contentview上,以及設(shè)置圖片內(nèi)容模式(icon.contentMode = UIViewContentModeScaleAspectFit),其實(shí)也可以叫設(shè)計(jì)那邊切套大小相同的小圖標(biāo),應(yīng)該也是可以解決的。
問題3:背景大圖片尺寸
加載一張背景圖片,類似問題1,UI那邊切的三套圖,其實(shí)寬度都是一樣的,在大屏設(shè)備上(除了5s,UI是以5s來設(shè)計(jì)的),例如6,6p上原圖顯示的話,寬度都是不夠的,當(dāng)然這個(gè)時(shí)候等比例拉伸的話,是可以解決的(我們就是這樣解決的iv.contentMode = UIViewContentModeScaleToFill),但是假如是人物或者圖片要求比較高的,很顯然就會(huì)發(fā)生失真的問題,這個(gè)時(shí)候也許就需要設(shè)計(jì)一套針對(duì)不同設(shè)備的2倍3倍圖了。
end
其實(shí),本來想說的很簡(jiǎn)單,不知道咋的就啰嗦了這么多,恩,以后還是要多想,多總結(jié)~??