IOS ----UIButton用法詳解

這段代碼動態的創建了一個UIButton,并且把相關常用的屬性都列舉了.希望對大家有用.

? //這里創建一個圓角矩形的按鈕
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];

// 能夠定義的button類型有以下6種,
// typedef enum {
// UIButtonTypeCustom = 0, 自定義風格
// UIButtonTypeRoundedRect, 圓角矩形?
// UIButtonTypeDetailDisclosure, 藍色小箭頭按鈕,主要做詳細說明用
// UIButtonTypeInfoLight, 亮色感嘆號
// UIButtonTypeInfoDark, 暗色感嘆號
// UIButtonTypeContactAdd, 十字加號按鈕
// } UIButtonType;

//給定button在view上的位置
button1.frame = CGRectMake(20, 20, 280, 40);

//button背景色
button1.backgroundColor = [UIColor clearColor];

//設置button填充圖片
//[button1 setImage:[UIImage imageNamed:@"btng.png"] forState:UIControlStateNormal];

//設置button標題
[button1 setTitle:@"點擊" forState:UIControlStateNormal];

/* forState: 這個參數的作用是定義按鈕的文字或圖片在何種狀態下才會顯現*/
//以下是幾種狀態
// enum {
// UIControlStateNormal = 0, 常規狀態顯現?
// UIControlStateHighlighted = 1 << 0, 高亮狀態顯現?
// UIControlStateDisabled = 1 << 1, 禁用的狀態才會顯現
// UIControlStateSelected = 1 << 2, 選中狀態?
// UIControlStateApplication = 0x00FF0000, 當應用程序標志時?
// UIControlStateReserved = 0xFF000000 為內部框架預留,可以不管他?
// };

/*
* 默認情況下,當按鈕高亮的情況下,圖像的顏色會被畫深一點,如果這下面的這個屬性設置為no,
* 那么可以去掉這個功能
*/
button1.adjustsImageWhenHighlighted = NO;
/*跟上面的情況一樣,默認情況下,當按鈕禁用的時候,圖像會被畫得深一點,設置NO可以取消設置*/
button1.adjustsImageWhenDisabled = NO;
/* 下面的這個屬性設置為yes的狀態下,按鈕按下會發光*/
button1.showsTouchWhenHighlighted = YES;

/* 給button添加事件,事件有很多種,我會單獨開一篇博文介紹它們,下面這個時間的意思是
按下按鈕,并且手指離開屏幕的時候觸發這個事件,跟web中的click事件一樣。
觸發了這個事件以后,執行butClick:這個方法,addTarget:self 的意思是說,這個方法在本類中
也可以傳入其他類的指針*/
[button1 addTarget:self action:@selector(butClick:) forControlEvents:UIControlEventTouchUpInside];

//顯示控件
[self.view addSubview:button1];

注意:

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

addTarget:self 是鏈接到self,一般都這樣設置
action:@selector(alarmTimeDone:) 時間處理函數
forControlEvents:UIControlEventTouchUpInside 控件事件處理的消息
?

?

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

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

?

何時釋放release UIButton?

是否在dealloc中對UIButton對象進行release操作,取決于UIButton初始化的方式。

如果使用[UIButtonbuttonWithType:UIButtonTypeRoundedRect]這種方式,是不需要進行release操作的,因為這種方式是自動釋放的。如果使用 [[UIButton alloc]init]的方式,則需要主動進行release釋放操作。

轉載于:https://www.cnblogs.com/yjhrem/articles/3519799.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/377357.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/377357.shtml
英文地址,請注明出處:http://en.pswp.cn/news/377357.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

針對一個class寫出它的內存管理池以及總結出allocator類(三個版本)

目錄示例版本1&#xff1a;per-class allocator,1示例版本2&#xff1a;per-class allocator,2最終版本&#xff1a;static allocator針對版本三進行macro如果我們不針對對象做內存管理&#xff0c;那么我們每次進行Foo* p new Foo(x);時總是會調用malloc函數。 盡管malloc函數…

kotlin 第一個程序_Kotlin程序添加兩個矩陣

kotlin 第一個程序Given two matrices, we have to add them. 給定兩個矩陣&#xff0c;我們必須將它們相加。 Example: 例&#xff1a; Input:matrix 1:[2, 3][4, 5][7, 1]matrix 2:[4, 6][9, 0][7, 6]Output:[6, 9][13, 5][14, 7] 在Kotlin中添加兩個矩陣的程序 (Progra…

ubuntu 切換用戶的命令[shell, linux]

使用ubuntu過程中免不了和shell(終端)打交道, 也不可避免在各種用戶之間進行切換, 從而實現對各帳戶的管理, 這個就涉及到了一個比較基礎又很重要的工作,怎么樣切換用戶, 對于LINUX老鳥來說,這個根本不值不提的東東卻讓新手撓頭不已, 現在給出普通用戶和超級用戶切換的命令(附圖…

曲苑雜壇--修改數據庫名和文件組名

/* 該腳本示例如何完整的修改一個數據庫的名稱. 數據庫為原名稱為DB_BEIJING&#xff0c;需要修改成DB_SHANGHAI nzperfect 2012.12.19 */--判斷是否存在同名的數據庫&#xff0c;以防止誤刪除 USE master GO IF EXISTS (SELECT name FROM sys.databases WHERE name NDB_BEIJI…

關于new handler與default、delete關鍵字

在https://blog.csdn.net/qq_42604176/article/details/111638568的operate_new源代碼長啥樣中談到過new handler。 當operator new不能夠分配出申請的內存時&#xff0c;會拋出bad_alloc 異常。有的編譯器會返回0. 當定義成new(nothrow) Foo&#xff1b;就不會拋異常&#xff…

模式匹配運算符–Shell

轉載&#xff1a;http://www.firefoxbug.net/?p722 Var/home/firefox/MyProgram/fire.login.name ${Variable#pattern}:如果模式匹配于變量值的開頭處&#xff0c;則刪除匹配的最短部分&#xff0c;并且返回剩下的部分 例子&#xff1a; [fire]$ echo ${Var#*/} [fire]$ home/…

河內塔問題_河內塔的Python程序

河內塔問題You are challenged for a challenge to find the number of moves required to move a stack of disks from one peg to another peg. Wait for a second, it sounds easy? Let’s find are what is going on and in this article, we are introducing a chapter o…

VC6、BC5、G2.9標準分配器一覽

目錄VC6標準分配器BC5標準分配器G2.9標準分配器VC6標準分配器 VCx中源碼可以在電腦路徑中找&#xff1a; [D:\Program Files\VisualStudio\Community\VC\Tools\MSVC\14.28.29333\include\xmemory] 不過太多了。大概在837行左右有關于allocator代碼。還是先看侯捷PPT上的吧。 …

【轉】shell 大括號、圓括號的使用

在這里我想說的是幾種shell里的小括號,大括號結構和有括號的變量&#xff0c;命令的用法&#xff0c;如下&#xff1a; PHP 代碼:1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:string},${var:string},${var:?string} 5.$((exp)) 6.$(var%pattern),$(var%%pattern),$(va…

css clear屬性_CSS中的clear屬性

css clear屬性CSS | 清除財產 (CSS | clear Property) We know so much about float property and how it is used for styling our web pages. If you do not remember the float property, lets help jog your memory. The float property is used to set the elements in a …

linux find prune排除某目錄或文件

http://blog.csdn.net/ysdaniel/article/details/7995681 查找cache目錄下不是html的文件 find ./cache ! -name *.html -type f列出當前目錄下的目錄名,排除includes目錄,后面的-print不能少 find . -path ./includes -prune -o -type d -maxdepth 1 -print排除多個目錄,”(“…

嵌入式指針embedded pointer的概念以及用法

目錄前言概念用法參考前言 在針對一個class寫出它的內存管理池以及總結出allocator類(三個版本)中內存管理池的第二個版本中涉及到了一個非常重要的概念&#xff1a;嵌入式指針。同時嵌入式指針也在G2.9版本的alloc中出現。現在整理一下網上的一些用法和概念 概念 嵌入式指針…

CLI配置和編址

實施基本編址方案&#xff1a; 在設計新網絡或規劃現有網絡時&#xff0c;至少要繪制一幅指示物理連接的拓撲圖&#xff0c;以及一張列出以下信息的地址表&#xff1a; l 設備名稱 l 設計中用到的接口 l IP 地址和子網掩碼 l 終端設備&#xff08;如 PC&#xff09;的默…

sql語句中的in用法示例_PHP中的循環語句和示例

sql語句中的in用法示例循環 (Loops) Imagine that we need a program that says "hello world" 100 times. Its quite stressful and boring to write the statement -- echo "hello world" — 100 times in PHP. This is where loop statement facilitate…

love2d教程30--文件系統

在游戲里少不了文件操作&#xff0c;在love2d里我們可以直接用lua自帶的io函數&#xff0c;如果不熟悉可以先讀一下我的lua文件讀寫。 相對lua&#xff0c;love2d提供了更多的函數&#xff0c; 方便我們操作文件。不過可能處于安全考慮&#xff0c;love2d只允許我們訪問兩個目錄…

std::alloc具體細節

G2.9 std::alloc的缺點&#xff1a; 1、在alloc::deallocate中沒有將拿到的內存資源還給操作系統&#xff0c;在多任務中將占用很大資源 2、alloc::deallocate函數沒有檢查傳入的p指針的有效性。在這里它默認p為alloc::allocate取得。 如果p并非alloc::allocate取得&#xf…

修改函數的返回地址

這篇隨筆源自今天看的這篇文章http://www.cnblogs.com/bluesea147/archive/2012/05/19/2508208.html 1. 如何修改函數返回地址 今天主要寫測試程序思考和驗證了一下這個問題&#xff0c;先看一下這個&#xff23;程序 1 #include <stdio.h>2 void foo(){3 int a,…

調試JavaScript代碼

JavaScript調試代碼 (JavaScript debugging the code) Debugging is the process of finding mistakes or bugs in the program. There are several ways one can debug their JavaScript code. This article will walk you through the strict mode in JavaScript and excepti…

Delphi運算符及優先級

單目運算符 (最高優先級) 取變量或函數的地址(返回一個指針) not 邏輯取反或按位取反 乘除及按位運算符 * 相乘或集合交集 / 浮點相除 div 整數相除 mod 取模 (整數相除的余數) as 程序運行階段類型轉換 (RTTI運算符) and 邏輯或按位求和 shl 按位左移 shr 按位右移 加減運算符…

NotifyMyFrontEnd 函數背后的數據緩沖區(二)

message level 函數pq_putmessage調用 low level 函數 pq_putbytes,pq_putbytes調用 internal_putbytes。 從internal_putbyes上來看&#xff0c;就可以發現其數據發送的機制:有一個小技巧&#xff0c;如果數據緩沖區滿了&#xff0c;就發送&#xff0c;否則就先堆在那兒。如果…