iOS開發UIbutton常用屬性方法,ios開發uibutton

來源:互聯網
上載者:User

iOS開發UIbutton常用屬性方法,ios開發uibutton

對UIbutton的簡單使用(基本上足夠了),話不多說,直接看

    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];

    /*

     UIButtonTypeCustom = 0,           //自訂風格

     UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0),  // 標準的系統按鈕

     UIButtonTypeDetailDisclosure,   藍色小箭頭按鈕,主要做詳細說明用

     UIButtonTypeInfoLight,          藍色驚嘆號

     UIButtonTypeInfoDark,           暗色驚嘆號

     UIButtonTypeContactAdd,         十字加字按鈕

     UIButtonTypeRoundedRect = UIButtonTypeSystem,   // Deprecated, use UIButtonTypeSystem instead

     */

    myButton.frame = CGRectMake(100, 100, 100, 50);//button在view上面的位置

    [myButton setBackgroundColor:[UIColor brownColor]];//背景色

    [self.view addSubview:myButton];

    [myButton setImage:[UIImage imageNamed:@"buttonimage.gif"] forState:UIControlStateNormal];

//    [myButton setBackgroundImage:[UIImage imageNamed:@"buttonimage.gif"] forState:UIControlStateNormal];

    [myButton setTitle:@"不易" forState:UIControlStateNormal];

    // 設定圖片的內邊距

    /*

     UIControlStateNormal = 0, 常規狀態顯現

     UIControlStateHighlighted = 1 << 0, 高亮狀態顯現

     UIControlStateDisabled = 1 << 1, 禁用的狀態才會顯現

     UIControlStateSelected = 1 << 2, 選中狀態

     UIControlStateApplication = 0x00FF0000, 當應用程式標誌時

     UIControlStateReserved = 0xFF000000 為內部架構預留,可以不管他

     */

    myButton.imageEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0);

    

    // 設定文本的內邊距

    myButton.titleEdgeInsets = UIEdgeInsetsMake(0, 50, 0, 0);

    /**

     保證button的imageView在旋轉之後保持原有的形狀

     UIViewContentModeScaleToFill,  展開填充

     UIViewContentModeScaleAspectFit,  自適應

     UIViewContentModeScaleAspectFill,  自適應填充

     UIViewContentModeCenter,   保持原有的尺寸

     */

    

    myButton.imageView.contentMode =UIViewContentModeCenter;

    /*

     * 預設情況下,當按鈕高亮的情況下,映像的顏色會被畫深一點,如果這下面的這個屬性設定為no,

     * 那麼可以去掉這個功能

     */

    myButton.adjustsImageWhenHighlighted = NO;

    /*跟上面的情況一樣,預設情況下,當按鈕禁用的時候,映像會被畫得深一點,設定NO可以取消設定*/

    myButton.adjustsImageWhenDisabled = NO;

    /* 下面的這個屬性設定為yes的狀態下,按鈕按下會發光*/

    myButton.showsTouchWhenHighlighted = YES;

    

    /* 給button添加事件,事件有很多種,我會單獨開一篇博文介紹它們,下面這個時間的意思是

     按下按鈕,並且手指離開螢幕的時候觸發這個事件,跟web中的click事件一樣。

     觸發了這個事件以後,執行butClick:這個方法,addTarget:self 的意思是說,這個方法在本類中

     也可以傳入其他類的指標*/

    [myButton addTarget:self action:@selector(butClick:) forControlEvents:UIControlEventTouchUpInside];

    //取消按鈕已經添加的所有事件:(這個比較重要,若添加了兩個事件  兩個事件都會被觸發)

    [myButton removeTarget:nil action:nil forControlEvents:UIControlEventTouchUpInside];

    /*

     {

     UIControlEventTouchDown

     單點觸摸按下事件:使用者點觸螢幕,或者又有新手指落下的時候。

     UIControlEventTouchDownRepeat

     多點觸摸按下事件,點觸計數大於1:使用者按下第二、三、或第四根手指的時候。

     UIControlEventTouchDragInside

     當一次觸摸在控制項視窗內拖動時。

     UIControlEventTouchDragOutside

     當一次觸摸在控制項視窗之外拖動時。

     UIControlEventTouchDragEnter

     當一次觸摸從控制項視窗之外拖動到內部時。

     UIControlEventTouchDragExit

     當一次觸摸從控制項視窗內部拖動到外部時。

     

     UIControlEventTouchUpInside

     所有在控制項之內觸摸抬起事件。

     UIControlEventTouchUpOutside

     所有在控制項之外觸摸抬起事件(點觸必須開始與控制項內部才會發送通知)。

     UIControlEventTouchCancel

     所有觸摸取消事件,即一次觸摸因為放上了太多手指而被取消,或者被上鎖或者撥打電話打斷。

     UIControlEventTouchChanged

     當控制項的值發生改變時,發送通知。用於滑塊、分段控制項、以及其他取值的控制項。你可以配置滑塊控制項何時發送通知,在滑塊被放下時發送,或者在被拖動時發送。

     UIControlEventEditingDidBegin

     當文本控制項中開始編輯時發送通知。

     UIControlEventEditingChanged

     當文本控制項中的文本被改變時發送通知。

     UIControlEventEditingDidEnd

     當文本控制項中編輯結束時發送通知。

     UIControlEventEditingDidOnExit

     當文本控制項內通過按下斷行符號鍵(或等價行為)結束編輯時,發送通知。

     UIControlEventAlltouchEvents

     通知所有觸摸事件。

     UIControlEventAllEditingEvents

     通知所有關於文本編輯的事件。

     UIControlEventAllEvents

     通知所有事件。

     }

     */

    // clipsToBounds = YES; 超出父view的邊界的部分將會被剪下掉

    myButton.imageView.clipsToBounds =NO;

    //擷取按鈕圖片和標題

    UIImage *image = [myButton backgroundImageForState:

                      UIControlStateHighlighted];//擷取高亮狀態下的圖片;

    UIImage *img=myButton.currentImage;//擷取當前按鈕的圖片;

    NSString *str =[myButton titleForState:UIControlStateNormal];//擷取正常狀態下的按鈕標題

    //取消失效狀態的按鈕映像調整

    myButton.adjustsImageWhenDisabled =NO;

        // 取消高亮狀態的按鈕映像調整

    myButton.adjustsImageWhenHighlighted =NO;

    

    //=================按鈕標題自適應大小

    

    //*********1、確定Label或Button的字型大小,使其寬度自適應

    

    UILabel *contentLabel = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 120, 30)];

    contentLabel.font = [UIFont systemFontOfSize:15];//-------->定義Font的大小

    contentLabel.backgroundColor = [UIColor redColor];

    contentLabel.text = @"我已知曉,且已閱讀並同意以上條款";

    [contentLabel sizeToFit];//-------->字型大小固定,寬度自適應

    [self.view addSubview:contentLabel];

    //************2、確定Label或Button的寬度,使字型大小自適應

    //無需自己設定字型大小

    UILabel *contentLabel1 = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 120, 30)];

    contentLabel1.backgroundColor = [UIColor redColor];

    contentLabel1.text = @"我已知曉,且已閱讀並同意以上條款";

    contentLabel1.adjustsFontSizeToFitWidth = YES;//寬度固定,字型大小自適應

    [self.view addSubview:contentLabel1];

    //***********如果是Button的話,和上面一樣,只有一點小小的區別:

    [myButton.titleLabel  sizeToFit];

    myButton.titleLabel.adjustsFontSizeToFitWidth = YES;

    

    //設定邊框顏色和圓角

    [myButton.layer setMasksToBounds:YES];

    [myButton.layer setCornerRadius:10.0]; //設定矩形四個圓角半徑

    //邊框寬度

    [myButton.layer setBorderWidth:1.0];

    //設定邊框顏色有兩種方法:第一種如下:

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

    CGColorRef colorref = CGColorCreate(colorSpace,(CGFloat[]){ 0, 0, 0, 1 });

    [myButton.layer setBorderColor:colorref];//邊框顏色

    //第二種方法如下:

    //_testButton.layer.borderColor=[UIColor grayColor].CGColor;

 

方便自己使用,也希望能方便他人

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.