iOS - UIButton 开发总结
生活随笔
收集整理的這篇文章主要介紹了
iOS - UIButton 开发总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
iOS - UIButton 開發總結
一 UIButton基礎
? ? iOS中提供了UIButton、UILable、UITextField、UIImageView等基礎UI控件,繼承于UIView。
? ? UIbutton繼承自UIControl,UIControl派生自UIView類,每個控件都有很多視圖的特性,包括附著于其他視圖的能力,所有控件都擁有一套共同的屬性和方法,包含顯示內容,點擊事件等等,UIControl的子類都有事件處理能力。
UIButton的定義:
? ? ?UIButton可使用 initWithFrame、buttonWithType兩種方式創建。
UIButton使用如下方法添加事件。
[btn addTarget:<#(id)#> action:<#(SEL)#> forControlEvents:<#(UIControlEvents)#>] ?
這些事件都是基于觸摸、基于值、基于編輯。
二 設置UIButton的文字顯示位置、字體的大小、字體的顏色
btn.frame = CGRectMake(x, y, width, height);
[btn setTitle: @"search" forState: UIControlStateNormal];
//設置按鈕上的自體的大小
//[btn setFont: [UIFont systemFontSize: 14.0]]; ? ?//這種可以用來設置字體的大小,但是可能會在將來的SDK版本中去除改方法
//應該使用
btn.titleLabel.font = [UIFont systemFontOfSize: 14.0];
[btn seBackgroundColor: [UIColor blueColor]];
//最后將按鈕加入到指定視圖superView
[superView addSubview: btn];
==========================================================
tvnamelabel=[[UIButton alloc]initWithFrame:CGRectMake(5,5,200,40)];
這樣初始化的button,文字默認顏色是白色的,所有如果背景也是白色的話,是看不到文字的,
btn.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft ;//設置文字位置,現設為居左,默認的是居中
[btn setTitle:@“title”forState:UIControlStateNormal];// 添加文字
有些時候我們想讓UIButton的title居左對齊,我們設置
btn.textLabel.textAlignment = UITextAlignmentLeft
是沒有作用的,我們需要設置
btn.contentHorizontalAlignment = UIControlContentHorizonAlignmentLeft;
但是問題又出來,此時文字會緊貼到做邊框,我們可以設置
btn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 0);
使文字距離做邊框保持10個像素的距離。
=======================================================
設置UIButton上字體的顏色設置UIButton上字體的顏色,不是用:
[btn.titleLabel setTextColor:[UIColorblackColor]];
btn.titleLabel.textColor=[UIColor redColor];
而是用:
[btn setTitleColor:[UIColor blackColor]forState:UIControlStateNormal];
三 uibutton實現左文字右圖片
[btnRight setTitleEdgeInsets:UIEdgeInsetsMake(0, -imgArrow.size.width, 0, imgArrow.size.width)];
[btnRight setImageEdgeInsets:UIEdgeInsetsMake(0, btnRight.titleLabel.bounds.size.width, 0, -btnRight.titleLabel.bounds.size.width)];
uibutton默認是左圖片,右文字。并且在設置edge insets之前,位置已經有了設定。所以設置title的edge insets,真實的作用是在原來的邊距值基礎上增加或減少某個間距,負值便是減少。以title為例,設置右邊距增加圖片寬度,就使得自己的右邊界距離按鈕的右邊界多了圖片的寬度,正好放下圖片。此時,title lable變小了,而title lable的左邊界還在原來的位置上,所以lable的左邊界距離按鈕的左邊界減少圖片的寬度,lable就和原來一樣大了,而且左側起始位置和圖片的左側起始位置相同了。
一 UIButton基礎
? ? iOS中提供了UIButton、UILable、UITextField、UIImageView等基礎UI控件,繼承于UIView。
? ? UIbutton繼承自UIControl,UIControl派生自UIView類,每個控件都有很多視圖的特性,包括附著于其他視圖的能力,所有控件都擁有一套共同的屬性和方法,包含顯示內容,點擊事件等等,UIControl的子類都有事件處理能力。
UIButton的定義:
? ? ?UIButton可使用 initWithFrame、buttonWithType兩種方式創建。
UIButton使用如下方法添加事件。
[btn addTarget:<#(id)#> action:<#(SEL)#> forControlEvents:<#(UIControlEvents)#>] ?
這些事件都是基于觸摸、基于值、基于編輯。
二 設置UIButton的文字顯示位置、字體的大小、字體的顏色
btn.frame = CGRectMake(x, y, width, height);
[btn setTitle: @"search" forState: UIControlStateNormal];
//設置按鈕上的自體的大小
//[btn setFont: [UIFont systemFontSize: 14.0]]; ? ?//這種可以用來設置字體的大小,但是可能會在將來的SDK版本中去除改方法
//應該使用
btn.titleLabel.font = [UIFont systemFontOfSize: 14.0];
[btn seBackgroundColor: [UIColor blueColor]];
//最后將按鈕加入到指定視圖superView
[superView addSubview: btn];
==========================================================
tvnamelabel=[[UIButton alloc]initWithFrame:CGRectMake(5,5,200,40)];
這樣初始化的button,文字默認顏色是白色的,所有如果背景也是白色的話,是看不到文字的,
btn.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft ;//設置文字位置,現設為居左,默認的是居中
[btn setTitle:@“title”forState:UIControlStateNormal];// 添加文字
有些時候我們想讓UIButton的title居左對齊,我們設置
btn.textLabel.textAlignment = UITextAlignmentLeft
是沒有作用的,我們需要設置
btn.contentHorizontalAlignment = UIControlContentHorizonAlignmentLeft;
但是問題又出來,此時文字會緊貼到做邊框,我們可以設置
btn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 0);
使文字距離做邊框保持10個像素的距離。
=======================================================
設置UIButton上字體的顏色設置UIButton上字體的顏色,不是用:
[btn.titleLabel setTextColor:[UIColorblackColor]];
btn.titleLabel.textColor=[UIColor redColor];
而是用:
[btn setTitleColor:[UIColor blackColor]forState:UIControlStateNormal];
三 uibutton實現左文字右圖片
[btnRight setTitleEdgeInsets:UIEdgeInsetsMake(0, -imgArrow.size.width, 0, imgArrow.size.width)];
[btnRight setImageEdgeInsets:UIEdgeInsetsMake(0, btnRight.titleLabel.bounds.size.width, 0, -btnRight.titleLabel.bounds.size.width)];
uibutton默認是左圖片,右文字。并且在設置edge insets之前,位置已經有了設定。所以設置title的edge insets,真實的作用是在原來的邊距值基礎上增加或減少某個間距,負值便是減少。以title為例,設置右邊距增加圖片寬度,就使得自己的右邊界距離按鈕的右邊界多了圖片的寬度,正好放下圖片。此時,title lable變小了,而title lable的左邊界還在原來的位置上,所以lable的左邊界距離按鈕的左邊界減少圖片的寬度,lable就和原來一樣大了,而且左側起始位置和圖片的左側起始位置相同了。
總結
以上是生活随笔為你收集整理的iOS - UIButton 开发总结的全部內容,希望文章能夠幫你解決所遇到的問題。