物理分辨率 : 為硬件所支持。由顯示屏實(shí)際存在的像素行數(shù)乘以列數(shù)的數(shù)學(xué)表達(dá)方式來(lái)表示。
創(chuàng)新互聯(lián)企業(yè)建站,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),專(zhuān)注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁(yè)設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營(yíng)經(jīng)驗(yàn),設(shè)計(jì)師為客戶(hù)打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢(xún)和貼心的售后服務(wù)。對(duì)于成都網(wǎng)站建設(shè)、網(wǎng)站制作中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶(hù)行業(yè)的需求,以靈動(dòng)的思維在網(wǎng)頁(yè)中充分展現(xiàn),通過(guò)對(duì)客戶(hù)行業(yè)精準(zhǔn)市場(chǎng)調(diào)研,為客戶(hù)提供的解決方案。
邏輯分辨率 : 軟件開(kāi)發(fā)所支持的,為了便于軟件開(kāi)發(fā)過(guò)程中的屏幕適配而設(shè)定。
PPI : Pixels Per Inch,每英寸的像素點(diǎn)數(shù)。
如果想了解更詳細(xì),可以移步 這里 。
iPhone
iPad
iPhone
iPad
iPhone
備注: Xcode 11 之后, launchImage 被廢棄,改用 LaunchScreen 。
Once for all !
早日迎接 launchScreen 吧。
引用
友情鏈接
這里先說(shuō)UIDevice,其他想了解的可以看后面的相關(guān)鏈接????♂?
UIDevice 提供了多種屬性、類(lèi)函數(shù)及狀態(tài)通知,幫助我們?nèi)轿涣私庠O(shè)備狀況。從檢測(cè)電池電量到定位設(shè)備與臨近感應(yīng),UIDevice所做的工作就是為應(yīng)用程序提供用戶(hù)及設(shè)備的一些信息。UIDevice的屬性如下
獲取設(shè)備硬件類(lèi)型,有三種方法,如下:
1)這種是在較高層次獲取設(shè)備類(lèi)型,返回的是 iPhone , iPod , iPad 。適合要求不高的。
2)這是Linux中獲取設(shè)備類(lèi)型的方法,主要是C語(yǔ)言的方法,注意引入頭文件#include sys/sysctl.h。輸入底層獲取設(shè)備類(lèi)型的方法。
3)這和2)一樣,是Linux中獲取設(shè)備類(lèi)型的方法,主要是C語(yǔ)言的方法,注意引入頭文件#import "sys/utsname.h"。輸入底層獲取設(shè)備類(lèi)型的方法。
ios開(kāi)發(fā)微信登陸在ipad上沒(méi)響應(yīng)被拒的原因是軟件和系統(tǒng)版本不兼容。根據(jù)查詢(xún)相關(guān)公開(kāi)資料得知系統(tǒng)版本低,應(yīng)該在更新系統(tǒng)后再使用ipad登錄微信。
iPhone和iPad開(kāi)發(fā)的區(qū)別:1.屏幕的尺寸 \\分辨率2.UI元素的排布 \\設(shè)計(jì)3.鍵盤(pán)4.API5.屏幕方向的支持
1)如何新建一個(gè)iPad應(yīng)用程序
2)設(shè)備支持的應(yīng)用程序
iPhone上只能運(yùn)行iPhone程序
iPad上能夠運(yùn)行iPhone \ iPad程序
3)開(kāi)發(fā)過(guò)程
iPhone和iPad開(kāi)發(fā)的流程是一致的
在iPhone開(kāi)發(fā)中用到的所有知識(shí)基本都能用在iPad上
在iPhone開(kāi)發(fā)中,Modal是一種常見(jiàn)的切換控制器的方式,
默認(rèn)是從屏幕底部往上彈出,直到完全蓋住后面的內(nèi)容為止;
而在iPad開(kāi)發(fā)中,Modal的使用頻率也是非常高的.
4.1、對(duì)比iPhone開(kāi)發(fā),Modal在iPad開(kāi)發(fā)中多了一些用法
1) 呈現(xiàn)樣式
Modal出來(lái)的控制器,最終顯示出來(lái)的樣子
Modal常見(jiàn)有4種呈現(xiàn)樣式UIModalPresentationFullScreen:全屏顯示(默認(rèn))UIModalPresentationPageSheet:? ? ? ? 寬度:豎屏?xí)r的寬度(768)? ? ? 高度:當(dāng)前屏幕的高度(填充整個(gè)高度)UIModalPresentationFormSheet:占據(jù)屏幕中間的一小塊UIModalPresentationCurrentContext:跟隨父控制器的呈現(xiàn)樣式
2) 過(guò)渡樣式
Modal出來(lái)的控制器,是以怎樣的動(dòng)畫(huà)呈現(xiàn)出來(lái)
Modal一共4種過(guò)渡樣式UIModalTransitionStyleCoverVertical:從底部往上鉆(默認(rèn))UIModalTransitionStyleFlipHorizontal:三維翻轉(zhuǎn)UIModalTransitionStyleCrossDissolve:淡入淡出UIModalTransitionStylePartialCurl:翻頁(yè)(只顯示部分,使用前提:呈現(xiàn)樣式必須是UIModalPresentationFullScreen)
UIPopoverController是iPad開(kāi)發(fā)中常見(jiàn)的一種控制器,
跟其他控制器不一樣的是,它直接繼承自NSObject,并非繼承自UIViewController;
它只占用部分屏幕空間來(lái)呈現(xiàn)信息,而且顯示在屏幕的最前面
要想顯示一個(gè)UIPopoverController,需要經(jīng)過(guò)下列三步驟:
1)設(shè)置內(nèi)容控制器:由于UIPopoverController直接繼承自NSObject,不具備可視化的能力,因此UIPopoverController上面的內(nèi)容必須由另外一個(gè)繼承自UIViewController的控制器來(lái)提供,這個(gè)控制器稱(chēng)為“內(nèi)容控制器”2)設(shè)置內(nèi)容的尺寸:顯示出來(lái)占據(jù)多少屏幕空間3)設(shè)置顯示的位置:從哪個(gè)地方冒出來(lái)
1) 設(shè)置內(nèi)容控制器
設(shè)置內(nèi)容控制器有3種方法:在初始化UIPopoverController的時(shí)候傳入一個(gè)內(nèi)容控制器- (id)initWithContentViewController:(UIViewController*)viewController;@property(nonatomic,retain)UIViewController*contentViewController;- (void)setContentViewController:(UIViewController*)viewController animated:(BOOL)animated;以上方法和屬性都是UIPopoverController的
2) 設(shè)置內(nèi)容的尺寸
設(shè)置內(nèi)容的尺寸有2種方法:@property(nonatomic)CGSizepopoverContentSize;- (void)setPopoverContentSize:(CGSize)size animated:(BOOL)animated;以上方法和屬性都是UIPopoverController的
3) 設(shè)置顯示的位置
第一種:圍繞著一個(gè)UIBarButtonItem顯示(箭頭指定那個(gè)UIBarButtonItem)/** *? 彈出UIPopoverController * *@paramitem? ? ? ? ? ? 圍繞著哪個(gè)UIBarButtonItem顯示 *@paramarrowDirections 箭頭的方向 *@paramanimated? ? ? ? 是否通過(guò)動(dòng)畫(huà)顯示出來(lái) */- (void)presentPopoverFromBarButtonItem:(UIBarButtonItem *)itempermittedArrowDirections:(UIPopoverArrowDirection)arrowDirectionsanimated:(BOOL)animated;
第二種:圍繞著某一塊特定區(qū)域顯示(箭頭指定那塊特定區(qū)域)/** *? 彈出UIPopoverController * *@paramrect? ? ? ? ? ? 指定箭頭所指區(qū)域的矩形框范圍(位置和尺寸) *@paramview? ? ? ? ? ? rect參數(shù)是以view的左上角為坐標(biāo)原點(diǎn)(0,0) *@paramarrowDirections 箭頭的方向 *@paramanimated? ? ? ? 是否通過(guò)動(dòng)畫(huà)顯示出來(lái) */- (void)presentPopoverFromRect:(CGRect)rectinView:(UIView *)viewpermittedArrowDirections:(UIPopoverArrowDirection)arrowDirectionsanimated:(BOOL)animated;
舉個(gè)小栗子:
如果想讓箭頭指向某一個(gè)UIView的做法有2種做法,比如指向一個(gè)button
方法1[popoverpresentPopoverFromRect:button.boundsinView:buttonpermittedArrowDirections:UIPopoverArrowDirectionDownanimated:YES];方法2[popoverpresentPopoverFromRect:button.frameinView:button.superviewpermittedArrowDirections:UIPopoverArrowDirectionDownanimated:YES];
5.3、通過(guò)內(nèi)容控制器設(shè)置內(nèi)容尺寸
內(nèi)容控制器可以自行設(shè)置自己在popover中顯示的尺寸
在iOS7之前@property(nonatomic,readwrite)CGSizecontentSizeForViewInPopover;從iOS7開(kāi)始@property(nonatomic)CGSizepreferredContentSize;以上屬性都是UIViewController的
5.4、常用屬性
代理對(duì)象@property(nonatomic,assign)id delegate;是否可見(jiàn)@property(nonatomic,readonly,getter=isPopoverVisible)BOOLpopoverVisible;箭頭方向@property(nonatomic,readonly)UIPopoverArrowDirectionpopoverArrowDirection;關(guān)閉popover(讓popover消失)- (void)dismissPopoverAnimated:(BOOL)animated;
5.5、防止點(diǎn)擊UIPopoverController區(qū)域外消失
默認(rèn)情況下:
只要UIPopoverController顯示在屏幕上,UIPopoverController背后的所有控件默認(rèn)是不能跟用戶(hù)進(jìn)行正常交互的;
點(diǎn)擊UIPopoverController區(qū)域外的控件,UIPopoverController默認(rèn)會(huì)消失
要想點(diǎn)擊UIPopoverController區(qū)域外的控件時(shí)不讓UIPopoverController消失,解決辦法是設(shè)置passthroughViews屬性
@property (nonatomic, copy) NSArray *passthroughViews;
這個(gè)屬性是設(shè)置當(dāng)UIPopoverController顯示出來(lái)時(shí),哪些控件可以繼續(xù)跟用戶(hù)進(jìn)行正常交互。這樣的話(huà),點(diǎn)擊區(qū)域外的控件就不會(huì)讓UIPopoverController消失了
5.6、常見(jiàn)報(bào)錯(cuò)
在popover的使用過(guò)程中,經(jīng)常會(huì)遇到這個(gè)錯(cuò)誤
-[UIPopoverController dealloc] reached while popover is still visible.
錯(cuò)誤的大體意思是:popover在仍舊可見(jiàn)的時(shí)候被銷(xiāo)毀了(調(diào)用了dealloc)
從錯(cuò)誤可以得出的結(jié)論:
*當(dāng)popover仍舊可見(jiàn)的時(shí)候,不準(zhǔn)銷(xiāo)毀popover對(duì)象!在銷(xiāo)毀popover對(duì)象之前,一定先讓popover消失(不可見(jiàn))*[popoverdismissPopoverAnimated:YES];
5.7、如何iPhone中實(shí)現(xiàn)popover的效果
UIPopoverController這個(gè)類(lèi)是只能用在iPad中的
要想在iPhone中實(shí)現(xiàn)popover效果,必須得自定義view,可以參考
a.MenuViewController
1masterViewController(主要控制器)
2負(fù)責(zé)展示主要的菜單內(nèi)容
詳細(xì)內(nèi)容(重點(diǎn))
b.DetailViewController
1detailViewController(詳情控制器)
2負(fù)責(zé)展示詳細(xì)內(nèi)容
iPad Pro (12.7寸)同樣的環(huán)境,設(shè)置相同的UIkeyboard,兩個(gè)不同的APP的彈出來(lái)的鍵盤(pán)不同。
怎么樣設(shè)置12.9寸 iPad Pro 全鍵盤(pán)或去掉全鍵盤(pán)?
這個(gè)跟我們APP開(kāi)發(fā)時(shí)使用哪種啟動(dòng)頁(yè)面有關(guān).(So TM ? What?)
樣式2我們?cè)陂_(kāi)發(fā)APP時(shí)建立工程啟動(dòng)頁(yè)面默認(rèn)是會(huì)帶有l(wèi)uanch storyboard,這個(gè)設(shè)置啟動(dòng)頁(yè)面的方式是蘋(píng)果推崇的,這樣設(shè)置是12.9寸的ipadpro是跟物理鍵盤(pán)類(lèi)似的全鍵盤(pán),跟我們實(shí)體物理鍵盤(pán)一樣,
但是當(dāng)用lauch image設(shè)置啟動(dòng)頁(yè)面時(shí)鍵盤(pán)默認(rèn)樣式1鍵盤(pán)模式。