經常使用控件的用法筆記

UIView網絡

  全部UI控件都繼承於這個UIView,它所擁有的屬性必是全部控件都擁有,這些屬性都是控件最簡單最通常的屬性。app

  • enable:是否啓用;
  • selected:是否被選擇;
  • contentVerticalAligement:內容是垂直方向的對齊方式,它是一個枚舉,分別有UIControlContentVerticalAligementCenter/Top/Bottom/Fill;
  • contentHorizontalAlignment:內容是水平方向的對齊方式,它是一個枚舉,UIControlContentHorizontalAligmentCenter/Left/Right/Center;
  • hidden: 顯示或者隱藏,BOOL類型;
  • frame:決定控件的大小和位置的結構體,與forstate混用有可能不起做用。

  OC不容許直接修改對象的結構體屬性的成員,但能夠修改結構體的屬性,此時只能先聲明另一個結構體修改結構體裏面的值後再對對象的結構體屬性從新設值。less

  事件操做,這裏則介紹如何去以代碼的形式給一個控件綁定和解綁事件。ide

  • 綁定事件:

事件名];學習

  • 解綁事件:

事件名];url

 

這裏若是涉及到多個事件的話,能夠用邏輯OR 「||」合併在一塊兒。spa

  • 得到該控件全部註冊了事件的方法: NSSet *myActions=[myControl allTargets];
  • 得到該控件全部註冊了該事件的方法:NSArray *myActions=[myControl actionForTarget:事件名];

  對於大多數事件的參數,第一個就是觸發該事件的控件,類型是id,在用代碼綁定事件或者經過storyboard連線的方式綁定事件後,能夠把id這個類型換成控件自己的類型,這樣在方法內部萬一要用回這個控件時就省得進行強制轉換了。code

  在個事件部分最後搭上一個經常使用的事件,單擊事件 UIControlEventTouchUpInside。orm

UIButton對象

         按樣式去建立按鈕,

UIButton *btn= [UIButton buttonWithType:UIButtonTypeRoundedRect];

樣式有如下幾種

  • UIButtonTypeCustom,自定義的風格;
  • UIButtonTypeRoundRect,白色圓角矩形,這個是默認的;311918223007923.png
  • UIButtonTypeDetailDisclosure:藍色披露按鈕,沒有文字;311918373312750.png
  • UIButtonTypeInfolight:微件用的小圓圈信息按鈕;311919225815040.png(按鈕的底色默認是白色的,頁面底色已換成淺藍色)
  • UIButtonTypeInfoDark:背景下用神社圓圈的按鈕;311919378471937.png
  • UIButtonTypeContactAdd:藍色加號」+「按鈕;311919584256723.png

經常使用的屬性:

  • title:按鈕的內容;
  • image:按鈕的圖片;
  • titleColor:按鈕內容的顏色;
  • shadowColor:按鈕陰影部分的顏色;
  • backgroundImage:按鈕的背景圖;

以上這些屬性的設值方法以下

[btn setTitle:@」Button1」 forState:…..];

[btn setImage:[UIImage imageName:@」圖片的文件名」] forState:…..];

[btn setTitleColor:[UIColor redColor] forState:…];

[btn setShadowColor:[UIColor redColor] forState:…..];

圖片文件名」] forState];

  設這類屬性都是帶了forState,表明了設的這個屬性只在某個狀態下才會生效,而按鈕的狀態有下面四個:UIControlstateNormal,UIControlStateHighlighted,UIControlStateDisabled,UIControlSeleted。

  設置按鈕的背景色則不須要連帶按鈕的顏色,只按照本來的屬性設置的就能夠了:btn.backgroundColor=[UIColor clearColor];

UILabel

  Label是一個很簡單很簡單的控件了,這裏就列舉一下它的幾個屬性

  • text:文本內容;
  • textColor:文本的顏色;
  • textAlignment:水平對齊的方式,因爲鄙人學習時是iOS6,在網上找到的不少資料都是早期版本的,不同的,這個須要分別列舉一下,在iOS6之後的版本,這個屬性是NSTextAlignment類型;它的值分別是

NSTextAlignmentLeft,

NSTextAlignmentCenter,

NSTextAlignmentRight,

NSTextAlignmentJustified,

;在iOS5和更早的版本是UITextAligenment,它的值分別是

UITextAlignmentLeft,

UITextAlignmentCenter,

UITextAlignmentRight;

  • lineBreakMode:這個屬性比較重要,是控制單詞折行方式,它是NSLineBreakMode類型的枚舉

copycode.gif

   NSLineBreakByWordWrapping, // 以單詞爲顯示單位顯示,後面部分省略不顯示

   NSLineBreakByCharWrapping, // 以字符爲顯示單位顯示,後面部分省略不顯示

   NSLineBreakByClipping, //剪切與文本寬度相同的內容長度,後半部分被刪除。

   NSLineBreakByTruncatingHead, //前面部分文字以……方式省略,顯示尾部文字內容。

   NSLineBreakByTruncatingTail, //結尾部分的內容以……方式省略,顯示頭的文字內容。  

//中間的內容以方式省略,顯示頭尾的文字內容。 

copycode.gif

  • numberOfLines:控制內容是否以多行顯示,若是是0則是多行;

UIImageView

  這個是用於圖片顯示的控件,經過設置image屬性來顯示那幅圖片,在OC中圖片則是UIImage類型,這個類型在UIButton部分也出現過,用於設置按鈕的圖片和按鈕的背景圖,可是要獲取這個圖片,這裏有三種方式:

  • 本地資源

首先是要往項目裏面添加資源:在項目裏面的」項目名-Info.plist」文件右鍵」AddFiles…」將圖片資源加入項目中。而後經過下面的代碼才能正常獲取到圖片

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:圖片的顯示方式,它是一個枚舉類型,

copycode.gif

   UIViewContentModeScaleToFill,

   UIViewContentModeScaleAspectFit,

   UIViewContentModeScaleAspectFill,

   UIViewContentModeRedraw,

   UIViewContentModeCenter,

   UIViewContentModeTop,

   UIViewContentModeBottom,

   UIViewContentModeLeft,

   UIViewContentModeRight,

   UIViewContentModeTopLeft,

   UIViewContentModeTopRight,

   UIViewContentModeBottomLeft,

   UIViewContentModeBottomRight,

copycode.gif

在以上枚舉沒帶Scale的枚舉值,都有一個共同點就是當圖片尺寸超出控件的大小時只會顯示圖片的一部分,超出的部分則不會顯示。而有三個枚舉也要特別說一下

UIViewContentModeScaleToFill圖片會變形(圖片的寬高比變了),圖片所有會顯示在控件中;

311926528627602.png

UIViewContentModeScaleAspectFit:圖片的比例不變,儘量地填充整個控件,以最短一邊去填充控件,沒填充的部分會有補白;

311927198784723.png

UIViewContentModeScaleAspectFill:圖片的比例不變,圖片會以最長邊去填充控件,會有一部分顯示不出來;

311927376915064.png

  • center:空間的中心點位置的屬性,能夠經過設置這個值來改變控件的位置,此屬性是CGPoint類型,能夠經過CGPointMake(CGFloat x,CGFloat y);來構造;
  • transform:賦上不一樣的值,圖片會在原有的基礎上做不一樣的變換
  • CGAffineTransformMakeTranslation(CGFloat dx,CGFloat dy);//向分別x,y軸的正方向移動dx,dy個像素;
  • CGAffineTransformMakeRotation(CGFloat angle);//以控件的中心順時針旋轉的angle個弧度;
  • CGAffineTransformMakeScale(CGFloat scale_w,CGFloat scale_h);//按本來寬高分別縮放scale_w和scale_h倍;
  • highlightedImage:控件在高亮狀態時顯示的圖片;
  • highlighted:BOOL類型的屬性,控制控件是否在高亮狀態

UITextField

這是文本框,相對來講也是一個簡單的控件,比UILabel稍複雜一點。

  • text:NSString類型,文本框內的文字內容;
  • placeholder:NSString類型,文本框無內容時會顯示在文本框裏面的內容;
  • secureTextEntry:BOOL類型,文本框內容是否以密碼形式顯示;
  • returnKeyType:彈出的軟鍵盤中,回車鍵的地方顯示的鍵的類型,分別有下面的類型;

copycode.gif

   UIReturnKeyDefault,

   UIReturnKeyGo,

   UIReturnKeyGoogle,

   UIReturnKeyJoin,

   UIReturnKeyNext,

   UIReturnKeyRoute,

   UIReturnKeySearch,

   UIReturnKeySend,

   UIReturnKeyYahoo,

   UIReturnKeyDone,

   UIReturnKeyEmergencyCall,

copycode.gif

  • keyboardType:彈出的軟鍵盤的類型,一共有下面這些類型

copycode.gif

   UIKeyboardTypeDefault,

   UIKeyboardTypeASCIICapable,

   UIKeyboardTypeNumbersAndPunctuation,

   UIKeyboardTypeURL,

   UIKeyboardTypeNumberPad,

   UIKeyboardTypePhonePad,

   UIKeyboardTypeNamePhonePad,

   UIKeyboardTypeEmailAddress,

   UIKeyboardTypeDecimalPad,

   UIKeyboardTypeTwitter,

   UIKeyboardTypeWebSearch,

copycode.gif

  • clearButtonMode:文本框中顯示清除內容的那個叉叉的顯示時機

311929489098620.png就是圖中紅框的地方,這個枚舉有如下這些值

   UITextFieldViewModeNever,

   UITextFieldViewModeWhileEditing,

   UITextFieldViewModeUnlessEditing,

   UITextFieldViewModeAlways

方法

若是文本框在編輯狀態,軟鍵盤則會彈出來,若是要收起軟鍵盤,則能夠調用下面這個方法

[txtBox resignFirstResponder];

事件

對於文本框,編輯前或編輯後均可以觸發不一樣的事件進行操做,也能夠在值發生變化時觸發事件,下面則列舉出來

TextDidBeginEditing;//開始編輯時觸發

TextDidEndEditing;//結束編輯時觸發

TextDidChange//內容改變時觸發

相關文章
相關標籤/搜索