裝置
螢幕型別
螢幕尺寸
點
解析度(畫素)
iphone 3gs 非
retina
3.5 inch
320*480
320x480
iphone4\4s
retina
3.5 inch
320*480
640x960
iphone5\5c\5s
retina
4 inch
320*568
640x1136
iphone6
retina
4.7 inch
375*667
750x1334
iphone6 plus
retina
5.5 inch
414*736
1242x2208
在retina
螢幕下乙個點表示
2個畫素,在非
retina
螢幕下乙個點表示
1個畫素。在
iphone6 plus
下乙個點表示
3個畫素。
• 結論
1:在同樣乙個尺寸的螢幕下由於使用的螢幕不一樣(
retina
和非retina),
所以造成的螢幕解析度會不同。也就是說,同樣是
30*30
的畫素,在
3.5 inch
大小的螢幕上,如果是非
retina
顯示會大一些
, retina
螢幕顯示會小一些。
• 結論2
:所以在開發中使用的是點。(比如使用
30*30
,不是表示
30畫素,而是表示
30點,這樣的話
ios系統會自動把點轉換為對應的畫素)。
•
1>
非retina螢幕1
個點表示1畫素
•
2> retian螢幕1
個點表示2畫素
•
3> iphone6 plus下1
個點表示3畫素
• 結論3:
因為程式中的是點
, ios
系統會自動把點轉換為不同的畫素去找,
所以對應的也要準備多份不同的。
• @2x (
視網膜螢幕,
在原來點座標的大小上乘以2)
• @3x
• 比如:btn_left
這張圖,
在**中寫的時候使用的是
btn_left,ios
會根據實際的螢幕去查詢
btn_left.png
• default-568h@2x
•
568表示
iphone5
•
h表示高度
•
上面的這些都是固定寫法,順序不能調換
總結:ios開發面向的是點座標系,不是畫素
• 乙個在啟動過程中會全屏顯示叫做
default.png的
• 不用規格
default
的使用場合
ø default.png
:非retina-iphone
螢幕(3.5 inch
),320x480
:retina-iphone
螢幕(3.5 inch
),640x960
:4 inch
的retina-iphone
螢幕,640x1136
ø default-portrait~ipad.png
:非retain-ipad
豎屏螢幕,
768x1024
:retain-ipad
豎屏螢幕,
1536x2048
ø default-landscape~ipad.png
:非retain-ipad
橫屏螢幕,
1024x768
:retain-ipad
橫屏螢幕,
2048x1536
應用程式圖示:
• 只要檔名叫做
icon.png
,就會自動被當做是應用程式的圖示
• 乙個應用程式可以準備多種規格的圖示,詳情可以檢視蘋果官方文件,如右圖
啟動:
1.launchscreen
2.launch image souce
uibutton:
• uibutton
有很多種狀態,它提供了一些便捷屬性,可以直接獲取當前狀態下的文字、文字顏色、等
• @property(nonatomic,readonly,retain)nsstring *currenttitle;
• @property(nonatomic,readonly,retain)uicolor *currenttitlecolor;
• @property(nonatomic,readonly,retain)uiimage *currentimage;
• @property(nonatomic,readonly,retain)uiimage *currentbackgroundimage;
狀態列:
• 在ios7
中,狀態列預設情況下歸控制器管理,比如狀態列的樣式、狀態列的是否可見
• 控制器通過重寫以下方法來控制狀態列
ø 設定狀態列的樣式
- (uistatusbarstyle)preferredstatusbarstyle; 其中
uistatusbarstylelightcontent
是白色樣式
ø 設定狀態列的可見性
-(bool)prefersstatusbarhidden;
:-(uistatusbarstyle)preferredstatusbarstyle
- (bool) prefersstatusbarhidden
1. 將移動到檢視的頂層
//bringsubviewtofront
呼叫方法的這個
view
,必須是被攜帶
view
的父view
[self.viewbringsubviewtofront:self.imageview]
//userinteractionenabled = no
禁止任何使用者互動,如果是父
view
設定了這個屬性為
no,那麼它的子
view
也將不會接受使用者互動
使用kvc的方式賦值:
[self setvaluesforkeywithdictionary:dict]; //
讓陣列中所有元素都執行
removefromsuperview
[_answerview.subviewsmakeobjectsperformselector:@selector(removefromsuperview)]; //
遍歷陣列(最快的):
[_optionview.subviews enumerateobjectsusingblock:^(__kindof uiview *_nonnull obj, nsuintegeridx, bool * _nonnull stop)
}];
ios基礎知識
1.2 plist xml格式檔案通常用於儲存使用者設定 pch 預編譯檔案頭 xib nte ce builder 的圖形介面設計文件 storyboard是ios 5的新特徵,旨在代替歷史悠久的nib xib 3 4 viewcontroller 建立viewcontroller時,執行load...
iOS 基礎知識
幾種寫法的區別 const nsstring conststring1 i am a const nsstring string nsstring const conststring2 i am a nsstring const string static const nsstring static...
IOS基礎知識
inte ce class nsobject class 繼承自 nsobject end 類的屬性申明 inte ce person nsobject perperty nsstring firstname property nsstring lastname property nsnumber ...