iOS開發UIbutton常用屬性方法

来源:http://www.cnblogs.com/freeleader/archive/2017/08/17/7381675.html
-Advertisement-
Play Games

對UIbutton的簡單使用(基本上足夠了),話不多說,直接看 UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; /* UIButtonTypeCustom = 0, //自定義風格 UIButtonTypeSyst ...


對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;

 

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 微信二次分享不顯示摘要和圖片的解決方法 解決不顯示摘要和圖片的問題,需要調用微信公眾號的js-sdk的api ,需要前端和後臺的配合, 後臺需要返回 appid (公眾號的appid ) 、 timestamp (生成簽名的時間戳) 、nonceStr (簽名的隨機字元串) 、 signature ...
  • 繼續作用域的問題,今天上午看了一會,下午看又看到了一個類型的題,函數名和變數名相同的問題。之前還不會覺得函數名和變數名重名了會有什麼衝突。也是沒有去測試過。。懶了。直接貼代碼: 運行之後大家猜測結果是多少?一口氣:100!!我果然是好大的口氣,沒有思考直接給出答案,實在是不太好的習慣。 出乎意料的報 ...
  • 學習前端開發,第一步要學習的絕對是HTML。 什麼是HTML? HTML 是(Hyper Text Markup Language)四個單詞的縮寫,翻譯過來就是超文本標記語言, 所以它不是一門編程語言,只是一門標記語言。 學習html的第一步就是需要學習它的標簽如何使用。這個沒有什麼技巧,全靠平時多 ...
  • 概述 bootstrap開發標簽頁時,標簽頁顯示正常,但點擊時候對應內容區域沒有變化。 具體癥狀與解決方案 1.標簽頁UI出現,但點擊無反應,標簽頁UI並未隨點擊進行切換 先檢查bootstrap.css,jQuery.js和bootstrap.js是否有正確引入,並保證引入順序jQuery在前,b ...
  • 一、JavaScript基礎 1、JavaScript用法: HTML 中的腳本必須位於 <script> 與 </script> 標簽之間。 腳本可被放置在 HTML 頁面的 <body> 和 <head> 部分中。 HTML引入外部js文件方法示例: <!DOCTYPE html> <html> ...
  • 俗話說不打無準備之仗,這次真是有點懵逼了,建議大家去面試的時候,尤其是去小型互聯網公司的時候,如果你想比其他人有競爭力,那麼你要研究一下當前他的公司正在開發產品,他們的業務類型是什麼樣的,比如他們公司正在開發xxxApp,你可以花費兩天時間,做一個xxxApp的demo,等去面試的時候,你就可以有底 ...
  • React Native使用props來實現頁面間數據傳遞和通信。在React Native中,有兩種方式可以存儲和傳遞數據:props(屬性)以及state(狀態) ...
  • 簡書地址:http://www.jianshu.com/p/1c288440754d demo地址:https://github.com/Brances/ZMProject ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...