UIView编程体验(一)
盡管這不是一個新的話題,但是實際上UIView是很多控件的基礎類,而且界面的布局基本是基于UIView來的,當然我們也可以使用CGLayer,本文僅列舉一些個人在使用UIView過程中的經驗和大家分享。大部分的內容來源于UIView Programming Guide,這個guide大家可以在xcode的幫助文檔里面查到也可以在蘋果的官網中找到。
?
首先說說Interface Builder. 在創建一個UIView的時候,我們往往會創建一個UIViewController,這使用了MVC模式,在controller里面實現業務邏輯,和model以及用戶界面打交道。在xcode的創建UIViewController的向導里面可以勾選With Xib for user interface來創建一個xib文件,Xib可以被interface builder打開,之所以需要這個文件主要是為了降低用程序來控制頁面控件的代碼量,比如如果你需要一個UILabel,并且把它放在頁面上部,如果你用Interface Builder你需要做的是將一個Label控件從Object Library里面拖到你想要的位置,如果用代碼,則你需要用UILabel的initWithFrame設置你要放置該控件的位置,然后使用addSubView將其加入到parent view之中:
UILabel*?titleLabel?=[UILabel?alloc]?initWithFrame?:CGRectMake(x,?y,?width,?height);?[self.view?addSubView?:?titleLabel]; ?
?
在Interface Builder的另一個要完成的事情是將你所拖放到界面里的控件和UIViewController里面的代碼綁定起來,其中包含兩種連接,第一種是將UIViewController里面的成員變量和界面上的控件綁定,比如在IB中加入了一個label,現在為了在controller里面使用這個label,我們需要:
1. 在UIViewController里面新增一個UILabel成員.
2.添加@property(nonatomic, retain) UILabel* wordLabel; 在.m文件里面增加@synthesize wordLabel
3.為這個property增加IBOutlet,我單獨把這一步和第二步分開,一般的類的property我們并不需要這個IBOutlet,但是如果我們需要在Interface Builder里面的控件和類里面的某個元素關聯并出現在InterfaceBuilder里面我們就需要這個關鍵字?@property(nonatomic, retain) IBOutlet UILabel* wordLabel;
4. 回到interfacebuilder,點選File's Owner,按住control鍵鼠標拖動到label控件上松開,無論你拖到ui窗體上面的label控件或者左邊樹狀控件圖上的Label控件都可以,這時會彈出一個黑色的小窗口,里面出現了wordlabel,也就是我們剛剛加入的那個property,選擇它,控件就綁定好了,這時UIViewController就知道其成員wordlabel和這個label控件是關聯的了。
5.Interface Builder另一種綁定是綁定控件的事件到controller里面的代碼,我們現在拖動一個button到界面上,然后回到UIViewController中。在.h文件中聲明一個方法 -(IBAction) onWordChangeClicked:(id) sender; 在.m中寫個簡單的該方法的實現:
?
-(IBAction)?onWordChangeClicked:(id)?sender{
??wordLabel.text=@"Changed";
}
?這個方法和其他方法不同的是IBAction,正是這個返回值告訴Controller這個方法是用來綁定IB里面的控件的
接下來我們把這段代碼和剛拖到頁面上的button綁定起來。 回到interface builder,選中button控件,按住control鍵,拖動到file's owner放開,彈出的小黑框出現了我們剛輸入的方法,選中它以關聯控件和其click事件,不過這里既然是移動設備我們不能叫click事件,準確的名稱是Touch Up Inside事件,當你觸摸這個button的時候觸發。
OK, done!運行一下看看效果吧?
?
?
?
轉載于:https://www.cnblogs.com/cyberknightgic/archive/2011/11/04/2236277.html
總結
以上是生活随笔為你收集整理的UIView编程体验(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《黎明杀机》恋爱游戏Steam特别好评
- 下一篇: 后座儿童掉落车外 私家车压实线挡车流救援