成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

ios開發(fā)適配,安卓和ios適配

iOS開發(fā) - iOS15導航欄適配(Object-C、Swift)

Swift版導航欄適配參考

創(chuàng)新互聯(lián)公司專注于江陽企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設,商城網(wǎng)站制作。江陽網(wǎng)站建設公司,為江陽等地區(qū)提供建站服務。全流程按需定制制作,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務

在iOS 13中給導航的 UINavigationBar 增加了 scrollEdgeAppearance 屬性應用在iOS 14及更早版本的大標題導航欄上,在iOS 15中 scrollEdgeAppearance 屬性適用于所有的導航欄

官方解釋:描述當關(guān)聯(lián)的UIScrollView到達與導航條相鄰的邊緣(導航條的上邊緣)時要使用的導航條的外觀屬性。如果沒有設置,將使用修改后的standardAppearance

scrollEdgeAppearance 與 standardAppearance 一樣同屬于 UINavigationBarAppearance 類型 父類是 UIBarAppearance

其中影響導航欄顏色、陰影涉及到以下屬性

因為 scrollEdgeAppearance = nil ,當前控制器如果使用有 ScrollView 類的控件,當 ScrollView 向上滾動時 scrollEdgeAppearance 會默認使用 standardAppearance 的屬性效果。所以 backgroundEffect 和 shadowColor 屬性需要顯式設置為nil,以防止 backgroundEffect、shadowColor 有顏色值影響導航欄透明效果。

下一篇:Swift版導航欄適配

PERFECT!

iOS開發(fā) UI適配劉海屏問題

這里筆者給出更簡單的劉海屏適配例子:

主要利用了safe area來解決劉海屏的距離問題。

使用safe area的時候注意不要在viewdidload里面獲取,要等到viewdidapper之后。不然獲取到的safe area offset為空,建議在viewdidlayout里面獲取。

iOS開發(fā):iPhone尺寸和適配

我們通常所說的iPhone5屏幕尺寸為4英寸、iPhone6屏幕尺寸為4.7英寸,指的是顯示屏對角線的長度(diagonal)

PPI(Pixel Per Inch by diagonal):表示沿著對角線,每英寸所擁有的像素(Pixel)數(shù)目。

PPI數(shù)值越高,代表顯示屏能夠以越高的密度顯示圖像,即通常所說的分辨率越高、顆粒感越弱。

根據(jù)勾股定理

計算結(jié)果稍有出入,這是因為像素的離散采樣有鋸齒效應。

早期的iPhone3GS的屏幕分辨率是320*480(PPI=163),iOS繪制圖形(CGPoint/CGSize/CGRect)均以point為單位(measured in points):

后來在iPhone4中,同樣大小(3.5 inch)的屏幕采用了Retina顯示技術(shù),橫、縱向方向像素密度都被放大到2倍,像素分辨率提高到(320x2)x(480x2)= 960x640(PPI=326), 顯像分辨率提升至iPhone3GS的4倍(1個Point被渲染成1個2x2的像素矩陣)。

在同樣的邏輯坐標系下(320x480):

為了自動適應分辨率,系統(tǒng)會根據(jù)設備實際分辨率,自動給UIScreen.scale賦值,該屬性對開發(fā)者只讀。

在同樣的邏輯分辨率下,可以通過scale參數(shù)識別是iPhone3GS還是iPhone4(s)。以下基于nativeScale參數(shù),定義了探測機型是否為iPhone6+的宏

--------------------------------------------------------------------------------那么,同樣的分辨率和scale,如何區(qū)分機型iPhone4與4s、iPhone5與5s呢?通過[[UIDevice currentDevice] model]只能判別iPhone、iPad、iPod大類,要判斷iPhone具體機型型號,則需要通過sysctlbyname("hw.machine")獲取詳細的設備參數(shù)信息予以甄別。

iPhone3GS時代,我們?yōu)橐粋€應用提供圖標(或按鈕提供貼圖),只需要icon.png。針對現(xiàn)在的iPhone4~6 Retina顯示屏,需要制作額外的@2x高分辨率版本。

Phone6+在實際渲染時,downsampling/1.15(1242x2208-1080x1920),準確的講,應該是@2.46x。蘋果為方便開發(fā)者用的是@3x的素材,然后再縮放到@2.46x上。

參考: 一張圖幫你看懂 iPhone 6 Plus 屏幕分辨率

1

該方法使用系統(tǒng)緩存,適合表視圖重復加載圖像的情形。同時該API根據(jù)UIScreen的scale,自動查找包含對應高倍圖后綴名(@2x)的文件,如果找到二倍圖,則image.scale=2.0,對應邏輯size大小以point度量(pixel度量的一半);如果沒找到設置默認image.scale=1.0,對應邏輯size大小同像素尺寸。因此,

2

這組方法創(chuàng)建的UIImage對象 沒有使用系統(tǒng)緩存 ,并且指定文件名必須包含明確的高倍圖后綴。

3

//考慮? 轉(zhuǎn)屏? 的影響,按照實際屏幕方向(UIDevice ?Orientation)的寬高

//不考慮轉(zhuǎn)屏的影響,只取豎屏(UIDevice OrientationPortrait)的寬高

待續(xù)

IOS項目新手引導頁圖片適配方案

基本上每個IOS APP都會有新手引導頁面這個功能,常規(guī)的就是幾張靜態(tài)圖片,可以左右滾動。既然涉及到圖片,就肯定會存在適配的問題(為了達到最優(yōu)的體驗效果,一般都會針對不同的分辨率設計不同尺寸的圖片),本文主要就是討論如何適配的問題。

2.1 方案一

根據(jù)屏幕分辨率的不同,使用不同的圖片。

2.2 ?方案二

熟悉IOS開發(fā)的人都知道,每一個ios項目中,都有一個Assets.xcassets文件夾,用來管理項目中所有的圖片(AppIcon、LaunchImage、其他業(yè)務圖片)。

從上面的截圖我們可以看到,xcode提供了兩個內(nèi)置的類型AppIcon、LaunchImage。我們只要提供正確尺寸的圖片,ios系統(tǒng)就能在不同分辨率的設備上使用對應的圖片而無需我們自己指定;另外就是我們自己創(chuàng)建的(avatar),提供2x、3x這兩種類型的圖片即可(1x的設備現(xiàn)在基本上找不到了,而且當前的ios系統(tǒng)也不支持1x的設備)。那么問題來了,我們自己創(chuàng)建的圖片集合,只有3個類型(1x、2x、3x),并不能按照分辨率來設定。再看一下上面的截圖,有一個“show”的圖片集合,形式如下:

咦!這個鬼東西是怎么搞出來的?我們先看看Assets.xcassets文件夾在硬盤上的組織形式:

從上圖我們可以看到,系統(tǒng)內(nèi)置的兩種類型AppIcon、LaunchImage對于的文件夾為AppIcon.appiconset、LaunchImage.launchimage,我們自己創(chuàng)建的圖片集合avatar對應的文件夾為avatar.imageset。講到這里,你應該大概猜到了show這個圖片集合是怎么創(chuàng)建出來了吧?

1、先創(chuàng)建一個LaunchImage類型的圖片集合;

2、修改名稱(LaunchImage→show)

3、修改文件夾名稱(show.launchimage→show.imageset)

回到正題,在show這個圖片集合里面,我們就可以輕松的根據(jù)分辨率設置2x、3x類型的圖片。

現(xiàn)在我們可以按照下圖的方式使用新手引導圖片了:

親測:不同分辨率的設備,展示對應的圖片。

我們注意到,show.imageset文件夾中有一個文件Contents.json,正是這個文件,ios系統(tǒng)才能根據(jù)設備類型展示對應的圖片資源。Contents.json文件內(nèi)容如下:

系統(tǒng)展示圖片的時候,會先解析這個文件,然后根據(jù)設備的分辨率,找到對應的圖片。

分享標題:ios開發(fā)適配,安卓和ios適配
當前URL:http://jinyejixie.com/article32/dssscsc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、商城網(wǎng)站、搜索引擎優(yōu)化、標簽優(yōu)化、網(wǎng)站排名網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設
河曲县| 昆明市| 扶沟县| 大城县| 淳安县| 宾阳县| 沙田区| 右玉县| 博乐市| 日土县| 江陵县| 阿拉善左旗| 永兴县| 广南县| 广丰县| 黔西| 铜梁县| 荣成市| 安平县| 得荣县| 云和县| 永宁县| 佛山市| 永平县| 建平县| 枞阳县| 西藏| 无锡市| 池州市| 察雅县| 贵定县| 平昌县| 定南县| 寿光市| 张家港市| 电白县| 泰和县| 临城县| 阳城县| 广宁县| 苏尼特左旗|