本篇簡單羅列一下一些常用的UI控件以及它們特有的屬性,事件等等。由于是筆記,相比起來不會太詳細
所有UI控件都繼承于這個UIView,它所擁有的屬性必是所有控件都擁有,這些屬性都是控件最簡單最一般的屬性。
OC不允許直接修改對象的結構體屬性的成員,但可以修改結構體的屬性,此時只能先聲明另外一個結構體修改結構體里面的值后再對對象的結構體屬性重新設值。
事件操作,這里則介紹如何去以代碼的形式給一個控件綁定和解綁事件。
[myControl addTarget:self action:@selector(myActionmethodName:) forControlEvents:事件名];
[myControl removeTarget:self action:@selector(myActionmethodName:) forControlEvents:事件名];
這里如果涉及到多個事件的話,可以用邏輯OR “||”合并在一起。
對于大多數事件的參數,第一個就是觸發該事件的控件,類型是id,在用代碼綁定事件或者通過storyboard連線的方式綁定事件后,可以把id這個類型換成控件本身的類型,這樣在方法內部萬一要用回這個控件時就免得進行強制轉換了。
在個事件部分最后搭上一個常用的事件,單擊事件 UIControlEventTouchUpInside。
按樣式去創建按鈕,
UIButton *btn= [UIButton buttonWithType:UIButtonTypeRoundedRect];
樣式有以下幾種
常用的屬性:
以上這些屬性的設值方法如下
[btn setTitle:@”Button1” forState:…..];[btn setImage:[UIImage imageName:@”圖片的文件名”] forState:…..];[btn setTitleColor:[UIColor redColor] forState:…];[btn setShadowColor:[UIColor redColor] forState:…..];[bnt setBackgroundImage:[UIImage imageNamed:@”圖片文件名”] forState];
設這類屬性都是帶了forState,代表了設的這個屬性只在某個狀態下才會生效,而按鈕的狀態有下面四個:UIControlstateNormal,UIControlStateHighlighted,UIControlStateDisabled,UIControlSeleted。
設置按鈕的背景色則不需要連帶按鈕的顏色,只按照原本的屬性設置的就可以了:btn.backgroundColor=[UIColor clearColor];
Label是一個很簡單很簡單的控件了,這里就列舉一下它的幾個屬性
NSTextAlignmentLeft,NSTextAlignmentCenter,NSTextAlignmentRight,NSTextAlignmentJustified,NSTextAlignmentNatural
;在iOS5和更早的版本是UITextAligenment,它的值分別是
UITextAlignmentLeft,UITextAlignmentCenter,UITextAlignmentRight;
NSLineBreakByWordWrapping, // 以單詞為顯示單位顯示,后面部分省略不顯示 NSLineBreakByCharWrapping, // 以字符為顯示單位顯示,后面部分省略不顯示 NSLineBreakByClipping, //剪切與文本寬度相同的內容長度,后半部分被刪除。 NSLineBreakByTruncatingHead, //前面部分文字以……方式省略,顯示尾部文字內容。 NSLineBreakByTruncatingTail, //結尾部分的內容以……方式省略,顯示頭的文字內容。 NSLineBreakByTruncatingMiddle//中間的內容以……方式省略,顯示頭尾的文字內容。
這個是用于圖片顯示的控件,通過設置image屬性來顯示那幅圖片,在OC中圖片則是UIImage類型,這個類型在UIButton部分也出現過,用于設置按鈕的圖片和按鈕的背景圖,但是要獲取這個圖片,這里有三種方式:
首先是要往項目里面添加資源:在項目里面的”項目名-Info.plist”文件右鍵”AddFiles…”將圖片資源加入項目中。然后通過下面的代碼才能正常獲取到圖片
UIImage *img=[UIImageimageNamed:@”1.jpg”];
否則如果單純拖拽如XCode里面,運行的時候是看不了圖片的。
NSURL*url=[NSURLWrithString:@”http://www.baidu.com/img/bdlogo.png”];UIImage *img=[[UIImage alloc]iniWithData:[NSData dataWithContentsOfURL:url]];
NSString *path=[NSStringstringWithFormat:@”%@/Documents/%@.jpg”,NSHomeDirectory,@”test”];UIImage *img=[[UIImage alloc]initWithContentsOfFile:path];
常用屬性
contentMode:圖片的顯示方式,它是一個枚舉類型,
UIViewContentModeScaleToFill, UIViewContentModeScaleaspectFit, UIViewContentModeScaleAspectFill, UIViewContentModeRedraw, UIViewContentModeCenter, UIViewContentModeTop, UIViewContentModeBottom, UIViewContentModeLeft, UIViewContentModeRight, UIViewContentModeTopLeft, UIViewContentModeToPRight, UIViewContentModeBottomLeft, UIViewContentModeBottomRight,
在以上枚舉沒帶Scale的枚舉值,都有一個共同點就是當圖片尺寸超出控件的大小時只會顯示圖片的一部分,超出的部分則不會顯示。而有三個枚舉也要特別說一下
UIViewContentModeScaleToFill圖片會變形(圖片的寬高比變了),圖片全部會顯示在控件中;
UIViewContentModeScaleAspectFit:圖片的比例不變,盡可能地填充整個控件,以最短一邊去填充控件,沒填充的部分會有補白;
UIViewContentModeScaleAspectFill:圖片的比例不變,圖片會以最長邊去填充控件,會有一部分顯示不出來;
這是文本框,相對來說也是一個簡單的控件,比UILabel稍復雜一點。
UIReturnKeyDefault, UIReturnKeyGo, UIReturnKeyGoogle, UIReturnKeyJoin, UIReturnKeyNext, UIReturnKeyRoute, UIReturnKeySearch, UIReturnKeySend, UIReturnKeyYahoo, UIReturnKeyDone, UIReturnKeyEmergencyCall,
UIKeyboardTypeDefault, UIKeyboardTypeASCIICapable, UIKeyboardTypeNumbersAndPunctuation, UIKeyboardTypeURL, UIKeyboardTypeNumberPad, UIKeyboardTypePhonePad, UIKeyboardTypeNamePhonePad, UIKeyboardTypeEmailAddress, UIKeyboardTypeDecimalPad, UIKeyboardTypeTwitter, UIKeyboardTypeWebSearch, UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable;
就是圖中紅框的地方,這個枚舉有以下這些值
UITextFieldViewModeNever, UITextFieldViewModeWhileEditing, UITextFieldViewModeUnlessEditing, UITextFieldViewModeAlways
方法
如果文本框在編輯狀態,軟鍵盤則會彈出來,如果要收起軟鍵盤,則可以調用下面這個方法
[txtBox resignFirstResponder];
事件
對于文本框,編輯前或編輯后都可以觸發不同的事件進行操作,也可以在值發生變化時觸發事件,下面則列舉出來
TextDidBeginEditing;//開始編輯時觸發TextDidEndEditing;//結束編輯時觸發TextDidChange//內容改變時觸發
新聞熱點
疑難解答