欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

ios開發(fā)縮放,蘋果app縮放

iOS開發(fā)之像素與點(diǎn)

相信iOSer們都被iOS開發(fā)中像素和點(diǎn)這兩個(gè)概念困擾過,經(jīng)過一段時(shí)間的學(xué)習(xí)和總結(jié),再次為大家講講我的個(gè)人理解,希望對(duì)和我有同樣困惑的同學(xué)一些幫助...

成都創(chuàng)新互聯(lián)公司成立于2013年,我們提供高端成都網(wǎng)站建設(shè)成都網(wǎng)站制作成都網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、營(yíng)銷型網(wǎng)站小程序開發(fā)、微信公眾號(hào)開發(fā)、網(wǎng)站推廣服務(wù),提供專業(yè)營(yíng)銷思路、內(nèi)容策劃、視覺設(shè)計(jì)、程序開發(fā)來完成項(xiàng)目落地,為建筑動(dòng)畫企業(yè)提供源源不斷的流量和訂單咨詢。

首先,點(diǎn)(point)是Apple制定的一個(gè)獨(dú)立于物理設(shè)備的邏輯坐標(biāo)單位。像素(pixel)是組成圖象的最基本單元。這兩個(gè)概念是不完全等同的。在iphone4之前的設(shè)備中,一個(gè)點(diǎn)等同于一個(gè)像素的大小。

一個(gè)像素有多大呢?主要取決于顯示器的分辨率,相同面積不同分辨率的顯示屏,其像素點(diǎn)大小就不相同。

OK,這又引入了一個(gè)叫做“分辨率”的名詞。

拿iPhone 6 Plus為例:

iphone 6 Plus 的分辨率為 1242 x 2208 (實(shí)際:1080 × 1920)(pixels),屏幕大小為5.5英寸(5.5英寸為對(duì)角線長(zhǎng)度,屏幕比例為16 :9)

根據(jù)勾股定理就可以算出來屏幕寬和高對(duì)應(yīng)的英寸長(zhǎng)度。

點(diǎn),是一個(gè)虛擬的單位,并非實(shí)際存在的。

蘋果從iphone4開始在在設(shè)備上使用宣稱的“Retina”屏幕,Retina在英文中,是視網(wǎng)膜的意思。

在Retina屏幕中,一個(gè)點(diǎn)(point)占據(jù)2個(gè)像素的寬度。

而在之后的 iphone 6 Plus 和 iphone 7 Plus 中更推出超高像素密度的“Retina”屏幕,像素密度(PPI)達(dá)到 401。

所以在超高像素密度的 iphone 6 Plus 和 iphone 7 Plus 上,一個(gè)點(diǎn)(point)占據(jù)3個(gè)像素的寬度(注意:此處僅僅代表單方向的寬度)。

介紹完點(diǎn)和像素的區(qū)別,下面就分別講一下在開發(fā)中的用法:

我們親愛的的美工妹子,在為iOS設(shè)備設(shè)計(jì)時(shí)都是用像素(pixels)衡量的。

從@2x 到 @3x,素材的分辨率提高了1.5倍,例如:@2x的素材為44 x 44 (pixels),那么相應(yīng)的@3x素材大小為66 x 66 (pixels)。

初代iPhone屏幕尺寸為3.5英寸,PPI為163。

從Retina屏幕開始,PPI提升到326。

直至Plus系列的PPI為 401。

先再計(jì)算一下iPhone 6 Plus 的像素和點(diǎn):

屏幕點(diǎn)坐標(biāo)系設(shè)計(jì)的寬度為 414 x 736 (points),理論對(duì)應(yīng)像素應(yīng)該是:1242 x 2208(pixels)。

但是,iPhone 6 Plus 的物理像素為:1080 x 1920(pixels),對(duì)應(yīng)5.5英寸的屏幕,所以像素密度就計(jì)算出來就是401。

在iPhone 4 -- iPhone 7產(chǎn)品中,除了iphone 6 Plus 和 7 Plus,其他所有iPhone的PPI是一致的,都是326,用@2x的素材。

但是iphone 6 Plus 和 7 Plus的實(shí)際DPI是401,理論上蘋果應(yīng)該用401 / 326 * @2x=@2.46x的素材。但是這個(gè)奇葩的比例對(duì)UI來說很難切圖。

所以,蘋果為方便開發(fā)者,用的是@3x的素材,然后再縮放到@2.46x上,實(shí)際上是縮放到2.46/3=82%。

而實(shí)際上分辨率為1080 x 1920(pixels),1920/2208≈0.87,1080/1242≈0.87, 所以這樣算下來,物理分辨率和虛擬分比率的比例是87%。

這樣可以是開發(fā)者更方便,比如準(zhǔn)備素材時(shí),字號(hào)可以直接調(diào)成@3x的。

當(dāng)我們需要使用某張圖片時(shí),只需要在xcode的Assets.xcassets中添加上它的@2x 和 @3x的樣張,系統(tǒng)會(huì)根據(jù)當(dāng)前機(jī)型自動(dòng)選擇合適的圖片展示。

看完下面這張圖,你也許能完全理解上面所說的概念了:

說道這,應(yīng)該對(duì)像素和點(diǎn)有個(gè)大概的了解了。在開發(fā)中可能還會(huì)遇到一些困惑:

假設(shè)一個(gè)控件在iPhone 6上的寬度為125(points),對(duì)比屏幕寬度375(points),125/375 ≈ 33% ,剛好占據(jù)屏幕寬度的三分之一。

同一控件展示在6Plus系列上時(shí),125/414 ≈ 30% ,還不到屏幕寬度的三分之一,會(huì)顯得稍微短一些。

所以,我們?cè)谠O(shè)計(jì)控件寬度的時(shí)候,盡量少使用類似125(points)這樣的死數(shù)據(jù)。

如果實(shí)在有必要使用的話,有一種解決辦法就是:

假設(shè):你的基準(zhǔn)機(jī)型是iphone 6的話,可以自己得出一個(gè)比例因子,在通過比例因子去自動(dòng)適配其他機(jī)型。

可以在項(xiàng)目中引入這樣一個(gè)宏:

最后再多說一句,“文”有AutoLayout,“武”有Masonry,基本上可以滿足絕大多數(shù)布局要求了吧~

以上就是關(guān)于像素和點(diǎn)的一些基本知識(shí)了,若有偏否,歡迎指正!

iOS中怎么關(guān)閉雙擊放大縮小網(wǎng)頁(yè)功能?

直接在“通用”的“縮放”里點(diǎn)擊關(guān)閉就行了。

這個(gè)功能的出發(fā)點(diǎn)是 iOS 初期主打的功能就是瀏覽非 wap 網(wǎng)頁(yè),為了快速導(dǎo)航,設(shè)計(jì)了這個(gè)自動(dòng)識(shí)別頁(yè)面元素的縮放功能。可以試一下,找一個(gè)帶正文/分欄的網(wǎng)站,雙點(diǎn)正文/分欄部分,是不是自動(dòng)縮放到合適的大小了。

iOS

是由蘋果公司開發(fā)的移動(dòng)操作系統(tǒng)。蘋果公司最早于2007年1月9日的Macworld大會(huì)上公布這個(gè)系統(tǒng),最初是設(shè)計(jì)給iPhone使用的,后來陸續(xù)套用到iPod touch、iPad上。iOS與蘋果的macOS操作系統(tǒng)一樣,屬于類Unix的商業(yè)操作系統(tǒng)。

原本這個(gè)系統(tǒng)名為iPhone OS,因?yàn)閕Pad,iPhone,iPod touch都使用iPhone OS,所以2010年WWDC上宣布改名為iOS(iOS為美國(guó)Cisco公司網(wǎng)絡(luò)設(shè)備操作系統(tǒng)注冊(cè)商標(biāo),蘋果改名已獲得Cisco公司授權(quán))。

iOS 圖片的同時(shí)旋轉(zhuǎn)縮放

最近項(xiàng)目中的一個(gè)小需求,要求圖片同時(shí)進(jìn)行旋轉(zhuǎn)和縮放兩種操作,做一個(gè)簡(jiǎn)單的總結(jié),先看下效果圖:

originalPoint 為旋轉(zhuǎn)縮放的參考點(diǎn)比例,默認(rèn)是按視圖中心旋轉(zhuǎn),即

self.originalPoint = CGPointMake(0.5, 0.5)

然后就是正常的操作,注意,在縮放的時(shí)候,四個(gè)角的控制按鈕要相反的放縮,保證大小不變,如果有其他元素,同理。

在控制按鈕上添加平移手勢(shì),記錄每一次平移的點(diǎn) ctrlPoint ,以及上一個(gè)平移點(diǎn),就是 self.lastCtrlPoint

旋轉(zhuǎn)的角度,根據(jù)上一個(gè)平移點(diǎn)和視圖中心點(diǎn)的角度,與當(dāng)前平移點(diǎn)和視圖中心點(diǎn)的角度偏差,進(jìn)行transform處理。

縮放也是類似,計(jì)算上一個(gè)平移點(diǎn)與中心點(diǎn)的距離 preDistance ,以及當(dāng)前平移點(diǎn)和中心點(diǎn)的距離 newDistance ,那么兩次平移距離的比例,就是視圖縮放的比例。這里做了一個(gè)判斷,在縮小到一半時(shí)停止繼續(xù)變小。

GitHub:

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

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

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

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

根據(jù)勾股定理

計(jì)算結(jié)果稍有出入,這是因?yàn)橄袼氐碾x散采樣有鋸齒效應(yīng)。

早期的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個(gè)Point被渲染成1個(gè)2x2的像素矩陣)。

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

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

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

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

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

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

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

1

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

2

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

3

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

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

待續(xù)

如何讓iOS地圖開發(fā)中也有縮放等級(jí)的概念

在開發(fā)地圖的app的時(shí)候,我們發(fā)現(xiàn)sdk中沒有設(shè)置地圖縮放等級(jí)的概念,

要顯示地圖就是設(shè)置其中心點(diǎn),然后再用一個(gè)span來控制顯示的區(qū)域,你就會(huì)問,什么是span?其實(shí)它也與latitude,

longitude有關(guān)。如果有一個(gè)縮放等級(jí)概念那開發(fā)的時(shí)候就更容易理解。我就收集到與此相關(guān)的資料,它使mkmapview有了縮放等級(jí)的概念

源碼在:

數(shù)學(xué)上證明:

不明白他說的數(shù)學(xué)原理沒關(guān)系,源碼直接拿來用也行,呵呵,沒有看到他的的license聲明,自己改改名字吧。

新聞標(biāo)題:ios開發(fā)縮放,蘋果app縮放
鏈接URL:http://chinadenli.net/article26/dsihejg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣網(wǎng)站營(yíng)銷響應(yīng)式網(wǎng)站虛擬主機(jī)網(wǎng)站策劃商城網(wǎng)站

廣告

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

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)