拾遺系列(五)Tips

2021-07-14 07:09:55 字數 3278 閱讀 5369

//載入原圖

uiimage *image = [uiimage imagenamed:@""];

//拉伸處理(說明需要保護的區域)

image = [image resizableimagewithcapinsets:uiedgeinsetsmake(30, 30, 30, 30) resizingmode:uiimageresizingmodestretch];

uibutton *btn;

//按鈕內邊距

btn.contentedgeinsets = uiedgeinsetsmake(10, 10, 10, 10);

btn.imageedgeinsets = uiedgeinsetsmake(20, 20, 20, 20);

btn.titleedgeinsets = uiedgeinsetsmake(30, 30, 30, 30);

uibutton的content中包含imageview、label。上面insets即對於每個view設定。

對於uitextfield沒有uibutton的edgeinsets屬性。若想設定uitextfield的編輯區域離uitextfield左側有一段距離,可通過下面方式來實現。

uitextfield *textfield;

uiview *leftview = [[uiview alloc]init];

leftview.frame = cgrectmake(0, 0, 10, 10);

textfield.leftview = leftview;

textfield.leftviewmode = uitextfieldviewmodealways;

//傳送通知

[[nsnotificationcenter defaultcenter]postnotification:note];

//接收通知

//接收到訊息之後的處理

-(void)receivenotification:(nsnotification *)note

系統自帶的一些通知

uidevice通知

uideviceorientationdidchangenotification //裝置旋轉

uidevicebatterystatedidchangenotification//電池狀態改變

uidevicebatteryleveldidchangenotification//電池電量改變

uideviceproximitystatedidchangenotification//近距離感測器(如裝置貼近使用者臉部)

鍵盤通知

uikeyboarddidshownotification//鍵盤即將顯示

uikeyboardwillhidenotification//鍵盤即將隱藏

uikeyboardwillchangeframenotification//鍵盤frame改變

獲取到系統通知時,可檢視系統帶的note

nslog(@"%@",note.userinfo);

//可以檢視到系統傳輸的note

, }";

uikeyboardcenterbeginuserinfokey = "nspoint: ";

uikeyboardcenterenduserinfokey = "nspoint: ";

uikeyboardframebeginuserinfokey = "nsrect: , }";

uikeyboardframeenduserinfokey = "nsrect: , }";

uikeyboardislocaluserinfokey = 1;

}

移除通知

- (void)dealloc
清空,回到初始

self.view

.transform = cgaffinetransformidentity;

按鈕中包含imageview、title

重新設定位置

//重新設定image位置

- (cgrect)imagerectforcontentrect:(cgrect)contentrect

//重新設定title位置

-(cgrect)titlerectforcontentrect:(cgrect)contentrect

- (void)layoutsubviews

開發步驟

總結 如果想監聽別人一些行為,那麼你就要成為別人的**

[self

.tableview addobserver:self forkeypath:@"numberofsections" options:kniloptions context:nil];

//kvo監聽方法

- (void)observevalueforkeypath:(nsstring *)keypath ofobject:(id)object change:(nsdictionary

*)change context:(void *)context

//移除監聽

-(void)dealloc

uitextfield *field = [[uitextfield alloc]init];

//自定義鍵盤

field.inputview = [[uiview alloc]init];

裡面內容都是共享的,每個檔案都會共享。但需要配置,通過 build settings –> prefix

- 存放一些公共巨集

- 存放公用標頭檔案

- 自定義log

//巨集裡面可變引數:...

//函式裡面可變引數:__va_args__

#define sdhlog(...) nslog(__va_args__)

#ifdef debug//除錯階段

#define sdhlog(...) nslog(__va_args__)

#else

#define sdhlog(...)

#endif

oc檔案會定義objc

oc標頭檔案中

拾遺系列 三 螢幕適配 Autolayout

make 做什麼約束 關係 哪個控制項 係數 偏移量 約束型別 1.尺寸 width height size 2.邊界 left leading right trailing top bottom 3.中心點 center centerx centery 4.邊界 edges define mas ...

C 拾遺系列 3 建構函式

1.主要演示建構函式的繼承 2.靜態建構函式 3.示例 using system using system.collections.generic using system.linq using system.text description 建構函式測試 namespace nettest pub...

C 拾遺系列 6 迭代器

1.示例 using system using system.collections.generic using system.linq using system.text using system.collections namespace nettest public class testite...