日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

IOS类似9.png

發(fā)布時(shí)間:2023/11/27 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS类似9.png 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

圖形用戶(hù)界面中的圖形有兩種實(shí)現(xiàn)方式,一種是用代碼畫(huà)出來(lái),比如Quartz 2D技術(shù),狠一點(diǎn)有OpenGL ES,另一種則是使用圖片。?
代碼畫(huà)的方式比較耗費(fèi)程序員腦力,CPU或GPU; 圖片則耗費(fèi)磁盤(pán)空間,會(huì)增加app的體積.一般的app我們會(huì)偏重于使用圖片來(lái)構(gòu)建用戶(hù)界面.?
設(shè)計(jì)師一般會(huì)使用PS來(lái)設(shè)計(jì)界面,所以在直接使用之前,有一個(gè)PSD到png的切圖(Image Slicing)過(guò)程.下面是切圖過(guò)程中可能要注意的幾點(diǎn).?

一.可重復(fù)元素

在用戶(hù)界面的圖形元素中,重復(fù)隨處可見(jiàn) ,所以我們利用好框架提供的接口, 以比較高的性?xún)r(jià)比創(chuàng)建用戶(hù)界面。

1.Color Pattern

Color Pattern在Web設(shè)計(jì)中也經(jīng)常會(huì)遇到比如網(wǎng)頁(yè)的背景,甚至網(wǎng)絡(luò)中可以找到專(zhuān)門(mén)收集各類(lèi)可重復(fù)的紋理圖案的站點(diǎn),比如?http://subtlepatterns.com. 下面這是一個(gè)小圖片模板

?

?

UIColor *circleColorPattern = [UIColor colorWithPatternImage: [UIImage imageNamed:@"circle_pattern.png"]];

這樣便可以得到一個(gè)顏色模板,用這個(gè)顏色畫(huà)或者填充某個(gè)區(qū)域的時(shí)候,模板圖片會(huì)在指定的區(qū)域中進(jìn)行平鋪.比如把一個(gè)View的背景顏色設(shè)置成上面這個(gè)顏色,便會(huì)得到如下結(jié)果

?

?

2.resizableImage

除了整體平鋪之外,很多時(shí)候我們希望某個(gè)圖片的局部進(jìn)行平鋪,而其余部分則保持不變. 比如常見(jiàn)的按鈕,聊天的氣泡背景或者圖片的陰影邊框. 這里舉個(gè)按鈕的例子,一般情況下為了方便做按鈕就直接切個(gè)按鈕背景,如下圖但是自己看,你會(huì)發(fā)現(xiàn)按鈕中間大都數(shù)像素都是橫向重復(fù)的,所以可以使用iOS的圖片接口來(lái)使用體積更小的圖片實(shí)現(xiàn)相同的效果. 首先使用PS的切圖工具進(jìn)行切圖,下圖中的切圖邏輯是,左邊切14像素(13像素加1像素,1像素為中間重復(fù)部分),右邊切13像素.

Retina屏幕下一個(gè)單位對(duì)應(yīng)著兩個(gè)像素,這里的例子是非Retina下的情況,請(qǐng)注意

?



切圖后將左右合并,變成最終所需要的圖片

?

?

圖片寬度為27像素寬,中間第14個(gè)像素為中間重復(fù)的部分.

UIImage *buttonBackgroundImage = [[UIImage imageNamed:@"button_bkg.png"] ?resizableImageWithCapInsets:UIEdgeInsetsMake(0,13,0,13)]; [button setBackgroundImage:buttonBackgroundImage ?forState:UIControlStateNormal];

resizableImageWithCapInsets:的參數(shù)是一個(gè)UIEdgeInsets的結(jié)構(gòu)體類(lèi)型,被capInsets覆蓋到的區(qū)域?qū)?huì)保持不變,而未覆蓋到的部分將會(huì)被用來(lái)平鋪.

在iOS 5.0之前并沒(méi)有這個(gè)方法,而是使用的另一個(gè)方法

?- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth ?topCapHeight:(NSInteger)topCapHeight;

這個(gè)方法有局限性,它只能指定leftCapWidth和topCapHeight,然后只有一個(gè)像素能夠重復(fù),也就是rightCapWidth為 imageWidth-leftCapWidth-1,而bottomCapHeight為 imageHeight - topCapHeight -1,所以重復(fù)的始終是中間的那一個(gè)像素.



二.圖片邊緣鋸齒和抗鋸齒問(wèn)題

?

1.需要抗鋸齒

有時(shí)候需要在旋轉(zhuǎn)的動(dòng)畫(huà)中使用到圖片,比如按鈕的旋轉(zhuǎn),圖片的旋轉(zhuǎn),為了避免在旋轉(zhuǎn)的過(guò)程中出現(xiàn)邊緣鋸齒,我們需要在切圖的時(shí)候,在邊緣上多留至少一像素的透明像素,因?yàn)閕OS在處理圖片的時(shí)候?qū)τ谕膺吘壥遣蛔隹逛忼X處理的,但是對(duì)于圖片內(nèi)部的邊緣則會(huì)做抗鋸齒處理.

2.需要去除抗鋸齒效果

當(dāng)某個(gè)imageView的frame的origin.x或者origin.y 不為整數(shù)的時(shí)候,會(huì)出現(xiàn)你不想要的抗鋸齒效果,這個(gè)時(shí)候本來(lái)清晰的圖片邊緣會(huì)變得模糊,而這不是你想要的,所以這個(gè)時(shí)候我們就要對(duì)frame的起點(diǎn)進(jìn)行取整。

轉(zhuǎn)載于:https://www.cnblogs.com/lgphp/p/4109607.html

總結(jié)

以上是生活随笔為你收集整理的IOS类似9.png的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。