UIButton、UILabel、UITextField 初學者需要瞭解的基本定義和常用設置

来源:http://www.cnblogs.com/ljcgood66/archive/2016/04/07/5362063.html
-Advertisement-
Play Games

以下是三個IOS開發中最常用的控制項,作為IOS基礎學習教程知識 ,初學者需要瞭解其基本定義和常用設置,以便在開發在熟練運用。 UIButton按鈕 第一、UIButton的定義 UIButton *button=[[UIButton buttonWithType:(UIButtonType); 能夠 ...


    以下是三個IOS開發中最常用的控制項,作為IOS基礎學習教程知識 ,初學者需要瞭解其基本定義和常用設置,以便在開發在熟練運用。 

     UIButton按鈕

  第一、UIButton的定義

  UIButton *button=[[UIButton buttonWithType:(UIButtonType);

  能夠定義的button類型有以下6種,

  typedef enum {

  UIButtonTypeCustom = 0,  自定義風格

  UIButtonTypeRoundedRect,  圓角矩形

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

  UIButtonTypeInfoLight,  亮色感嘆號

  UIButtonTypeInfoDark,  暗色感嘆號

  UIButtonTypeContactAdd,  十字加號按鈕

  } UIButtonType;

  第二、設置frame

  button1.frame = CGRectMake(20, 20, 280, 40);

  [button setFrame:CGRectMake(20,20,50,50)];

  第三、button背景色

  button1.backgroundColor = [UIColor clearColor];

  [button setBackgroundColor:[UIColor blueColor]];

  第四、state狀態

  forState: 這個參數的作用是定義按鈕的文字或圖片在何種狀態下才會顯現

  enum {

  UIControlStateNormal = 0, 常規狀態顯現

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

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

  UIControlStateSelected = 1 << 2, 選中狀態

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

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

  };

  @property(nonatomic,getter=isEnabled)BOOL enabled;   // default is YES. if NO, ignores touch events and subclasses may draw differently

  @property(nonatomic,getter=isSelected)BOOL selected;  // default is NO may be used by some subclasses or by application

  @property(nonatomic,getter=isHighlighted)BOOL highlighted;

  第五 、設置button填充圖片和背景圖片

  [buttonsetImage:[UIImageimageNamed:@"checkmarkControllerIcon"]forState:UIControlStateNormal];

  [buttonsetBackgroundImage:[UIImageimageNamed:@"checkmarkControllerIcon"]forState:UIControlStateNormal];

  第六、設置button標題和標題顏色

  [button1 setTitle: @"點擊" forState:UIControlStateNormal];

  [buttonsetTitleColor:[UIColorredColor]forState:UIControlStateNormal];

  第七、設置按鈕按下會發光

  button.showsTouchWhenHighlighted=NO;

  第八、添加或刪除事件處理

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

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

  第九、 設置按鈕內部圖片間距和標題間距

  UIEdgeInsets insets; // 設置按鈕內部圖片間距

  insets.top = insets.bottom = insets.right = insets.left = 10;

  bt.contentEdgeInsets = insets;

  bt.titleEdgeInsets = insets; // 標題間距

    第十、 其他

    // 設置按鈕為無效按鈕,如果按鈕無效了,按鈕就不再響應用戶了

     btn.enabled = YES;

     // 給按鈕添加手勢識別器

     [btn addGestureRecognizer:tap];

    // 添加一個按鈕 ,示例

    UIButton *calBtn = [[UIButton alloc]initWithFrame:CGRectMake(50, 200, 200, 40)];  // 按鈕大小

    calBtn.backgroundColor = [UIColor orangeColor];                  // 背景顏色

    [calBtn setTitle:@"點我,我就計算" forState:UIControlStateNormal];            // 設置預設狀態下的文字

  [calBtn setTitle:@"點我,我就計算" forState:UIControlStateHighlighted];    // 設置高亮狀態下的文字   

    [calBtn setBackgroundImage:[UIImage imageNamed:@"login_btn_n_Normal"] forState:UIControlStateNormal]; // 設置預設狀態下的背景圖片

    [calBtn setBackgroundImage:[UIImage imageNamed:@"logoff_btn_n_Highlighted"] forState:UIControlStateHighlighted];   // 設置高亮狀態下的背景圖片

    [self.view addSubview:calBtn];  // 最會一定要添加按鈕

 【】圖片的名稱要提前修改好,最好在後面加上分辨是預設狀態還是高亮狀態的單詞

 

  UILabel標簽

   UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(50, 100, 300, 160)];  // 大小

    lbl.backgroundColor = [UIColor lightGrayColor]; // 背景顏色

    lbl.textColor = [UIColor blueColor];     // 字體顏色

    // lbl.shadowColor = [UIColor redColor];      // 陰影效果,不常用

    // lbl.shadowOffset = CGSizeMake(4, -10);

    lbl.text = @"宿舍的";    // 添加文字

    // 標簽內容對齊方式

    lbl.textAlignment = NSTextAlignmentCenter;

    // 設置標簽的行數,如果設置為0,表示可以有任意多行

    lbl.numberOfLines = 2;

    // 當標簽有多行時,設置換行方式 ,預設的是以單詞為單位

    lbl.lineBreakMode = NSLineBreakByTruncatingMiddle;  // 如果不能完全顯示,中間會有三個小點

    // 設置標簽高亮狀態

    lbl.highlighted = YES;

    // 設置標簽高亮時字體顏色

    lbl.highlightedTextColor = [UIColor purpleColor];

    // 允許用戶可以與標簽進行交互

    lbl.userInteractionEnabled = YES;       //允許用戶交互

    // 定義一個點擊手勢識別器對象

    UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(lblClicked:)];

    // 在標簽上添加一個手勢識別器

    [lbl addGestureRecognizer:tap];

    //  lbl.enabled = NO;

    lbl.adjustsFontSizeToFitWidth = YES;

     // lbl.baselineAdjustment = UIBaselineAdjustmentAlignCenters;

    [self.view addSubview:lbl]; // 控制項最後都需要添加

【小結】下麵的大家可以試著用一下,

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

-Advertisement-
Play Games
更多相關文章
  • 即將畢業的軟體工程大學生一枚,秋季招聘應聘的是Android,今年來到公司實習,要求做前端開發,所以一切只有現學,現在根據視頻來學習,然後開這個博客記錄一下自己的學習過程,廢話不多說,開寫。 4月6日學到的知識點: 一:<!DOCTYPE HTML> ! 聲明,註意的意思; doc document ...
  • 實現目標:年月日三個select 輸入框,以及一個hidden的input,通過js獲取input的值,如果有值切是日期格式,年月日select為input中的時間。否則為空。年預設區間段為1900年到當今年份 本人使用了bootstrap,class請參照bootstrap的相關說明 下麵是htm ...
  • 項目地址 https://github.com/brinley/jSignature demo地址 http://willowsystems.github.io/jSignature/ /demo/ 初始化 getData 獲得canvas上的圖像數據,推薦使用 base30格式,相對於其他格式,存 ...
  • 前言 為了更好理解浮動和position,建議先看看我寫的這篇文章《Html文檔流和文檔對象模型DOM理解》 正文 一、浮動 CSS設計float屬性的主要目的,是為了實現文本繞排圖片的效果。然而,這個屬性居然也成了創建多欄佈局最簡單的方式。 如何浮動一個元素?先設定其寬度width,再增加樣式規則 ...
  • 0.導入框架準備工作 •1. 將AFNetworking3.0+框架程式拖拽進項目 •2. 或使用Cocopod 導入AFNetworking3.0+ •3. 引入 #import "AFNetworking.h" > 1.UI準備工作 A. 定義一個全局的 NSURLSessionDownload ...
  • 轉載請註明出處:http://blog.csdn.net/guolin_blog/article/details/47803149 之前有很多朋友都問過我,在Android系統中怎樣才能實現靜默安裝呢?所謂的靜默安裝,就是不用彈出系統的安裝界面,在不影響用戶任何操作的情況下不知不覺地將程式裝好。雖說 ...
  • 以下問題都是自己在項目中遇到的,解決問題的方法肯定有多種,我所列舉的不一定就是最好的解決辦法。如有問題歡迎大家指正,補充,交流。 解決同時按兩個按鈕進兩個view的問題。[button setExclusiveTouch:YES]; 在6p模擬器上輸出寬度是414,在6p真機上輸出是375是測試機本 ...
  • 代碼: ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...