《iOS高階指南》讀書筆記

2021-09-24 07:58:02 字數 2433 閱讀 7441

intrinsic content size

uiview等控制項重寫intrinsiccontentsize 方法,可以增加uiview等的內間距。

同時可以不設定寬高,只設定top,left。

純**

- (cgsize)intrinsiccontentsize

複製**

xib

instrinsic size 屬性設定為 placeholder

案例uiview中新增兩個高度不確定的label。並自動適配兩個label的高度。

content hugging priority 內容高度變大的優先順序

用於兩個label其中乙個跟隨拉伸

content compression resistance 內容高度變小優先順序

用於兩個label其中乙個跟隨壓縮

layoutsubviews 呼叫時機

frame 發生變化時會呼叫

直接呼叫setlayoutsubviews

setneedslayout ()複製**
標記此處需要重新整理,但是不會立即呼叫layoutsubviews()

layoutifneeded()  複製**
如果有需要重新整理的標記,立即呼叫layoutsubviews()

如果要立即重新整理,先呼叫view.setneedslayout() ,在然後馬上呼叫layoutifneeded() 。

xib布局小技巧

設定此處可以在不同機型上使用不同的布局。

uistackview

給view新增到uistackview上,可以是的view有流布局的效果。

cell的高度計算

手動計算

手動計算所有cell內控制項的高度,相加求和。

使用self-satisfied

- (cgsize)systemlayoutsizefittingsize: (cgsize)targetsize;複製**
呼叫上面的方法,控制項可以自動計算cell的高度,但是控制項的約束要符合self-satisfied標準。

使用self-sizing , 此方法會很慢。

tableview.estimatedrowheight = 44.0

tableview.rowheight = uitableviewautomaticdimension複製**

設定圓角

離屏渲染

self.contentview.layer.maskstobounds = yes; 

self.contentview.layer.cornerradius = 4; 複製**

使用uiimageview裝載乙個圓角來處理

避免離屏渲染

+ (uiimage*) imagewithcolor:(uicolor *)color 複製**
- (uiimage *)imagebyroundcornerradius:(cgfloat)radius

corners:(uirectcorner)corners

borderwidth:(cgfloat)borderwidth

bordercolor:(uicolor *)bordercolor

borderlinejoin:(cglinejoin)borderlinejoin

if (bordercolor && borderwidth < minsize / 2 && borderwidth > 0)

uiimage *image = uigraphicsgetimagefromcurrentimagecontext();

uigraphicsendimagecontext();

return image;

}複製**

設定陰影

離屏渲染

calayer *shadowlayer = [calayer layer]; 

shadowlayer = [uicolor blackcolor].cgcolor;

shadowlayer.shadowopacity = 1.0;

shadowlayer.shadowradius = 4.0;

shadowlayer.shadowoffset = cgsizemake(4.0, 4.0);複製**

避免離屏渲染

shadowlayer.shadowpath = cgpathcreatewithrect(shadowlayer.bound

s, null);複製**

blending 在ios中指混合顏色判斷。不透明的view疊加,系統需要對圖層進行計算。會拖慢速度。

iOS 讀書筆記 cookie

cookie是什麼東西?cookie session機制詳解這位博主寫的很詳細,可以看一下。ios 應用中可以在http連線中方便的使用cookie。url載入框架幫我們做了大量的工作以利用協議的這個特徵。經常用到cookie的地方有3個 檢索cookie的值 顯示刪除cookie 手工將cooki...

讀書筆記 iOS 類別

一,類別是一種為現有的類新增新方法的方式。二,類別的侷限性。1,無法向類中新增新的例項變數。類別沒有位置容納例項變數。2,名稱衝突,即類別中的方法與現有的方法重名。當發生名稱衝突時,類別具有更高的優先順序。你的類別名稱將完全取代初始方法,從而無法再使用初使方法。有些程式設計人員在自己的類別方法名中增...

《iOS程式設計》讀書筆記

第2章 objective c 1.訊息和方法的區別 方法是指一塊可以執行的 而訊息是指要求類或物件執行某個方法的動作 2.訊息的名稱和將要執行的方法的名稱一定是相同的 3.在oc中,方法的唯一性取決於方法名。因此,即使引數型別或返回型別不同,乙個類也不能有兩個名稱相同的方法 4.oc允許向某個值為...