UI002 自定義控制項

2021-07-04 02:54:43 字數 3886 閱讀 3084

ios開發ui基礎—自定義控制項(手寫控制項),frame,center和bounds屬性

一、手寫控制項

1.手寫控制項的步驟

(1)使用相應的控制項類建立控制項物件

(2)設定該控制項的各種屬性

(3)新增控制項到檢視中 父控制項 子控制項

(4)如果是button等控制項,還需考慮控制項的單擊事件等

(5)注意:view contollor和view的關係

2.注意點

在oc開發中,storyboard中的所有操作都可以通過**實現,**實現的soryboard不一定能實現。程式設計師一定要熟練掌握**布局介面的能力!

設定控制項監聽方法的示例**如下:

> [btn addtarget:

self

action:

@selector(click:)

> forcontrolevents:

uicontroleventtouchupinside];

1> addtarget方法定義在uicontrol類中,這意味著可以給所有繼承自uicontrol類的物件新增監聽方法

2> 監聽方法的第乙個引數就是物件本身

3> 監聽方法的第二個引數是監聽控制項的事件

3.**示例

1

//1.使用類建立乙個按鈕物件

2// uibutton *headbtn=[[uibutton alloc] initwithframe:cgrectmake(100 ,100, 100, 100)];

3//設定按鈕物件為自定義型

4uibutton *headbtn=[uibutton buttonwithtype:uibuttontypecustom]; 56

//2.設定物件的各項屬性

7//(1)位置等通用屬性設定

8 headbtn.frame=cgrectmake(100, 100, 100, 100);

910//(2)設定普通狀態下按鈕的屬性

11 [headbtn setbackgroundimage:[uiimage imagenamed:@"i"] forstate:uicontrolstatenormal];

12 [headbtn settitle:@"點我!" forstate:uicontrolstatenormal];

13 [headbtn settitlecolor:[uicolor redcolor] forstate:uicontrolstatenormal];

1415

//(3)設定高亮狀態下按鈕的屬性

16 [headbtn setbackgroundimage:[uiimage imagenamed:@"a"] forstate:uicontrolstatehighlighted];

17 [headbtn settitle:@"還行吧~" forstate:uicontrolstatehighlighted];

18 [headbtn settitlecolor:[uicolor bluecolor] forstate:uicontrolstatehighlighted];

1920

//3.把物件新增到檢視中展現出來

21 [self

.view addsubview:headbtn];

22//注意點!

23self

.headimageview=headbtn;

二、frame,center和bounds屬性

1.frame、center和bounds屬性

frame:控制位置和大小

center:控制位置(中心點)

bounds:控制大小(以自己的左上角為原點)

2.注意點

(1)通過以下屬性可以修改控制項的位置

frame.origin

center

(2)通過以下屬性可以修改控制項的尺寸

frame.size

bounds.size

3.**示例

乙個控制上下左右平移,縮放的程式(frame、center和bounds屬性)

1//2

// abviewcontroller.m

3// 01-練習使用按鈕的frame和center屬性4//

567//

89#import "abviewcontroller.h"

1011

//私有擴充套件

12@inte***ce

abviewcontroller ()

1314

@property(nonatomic,weak)iboutlet

uibutton *headimageview;

15@end

1617

@implementation

abviewcontroller

1819

//列舉型別,從1開始

20typedef

enum

21 btntag;

2728

//viewdidload是檢視載入完成後呼叫的方法,通常在此方法中執行檢視控制器的初始化工作

29 - (void)viewdidload

30 151152

//控制方向的多個按鈕呼叫同乙個方法

153 -(void)click:(uibutton *)button

154

178179

// self.headimageview.frame=frame;

180181

//首尾式設定動畫效果

182 [uiview beginanimations:nil context:nil];

183self

.headimageview

.center=center;

184//設定時間

185 [uiview setanimationduration:2.0];

186 [uiview commitanimations];

187nslog(@"移動!");

188189 }

190 -(void)zoom:(uibutton *)btn

191

198// else

199//

203// self.headimageview.frame=frame;

204205

206//使用bounds,以中心點位原點進行縮放

207cgrect bounds = self

.headimageview

.bounds;

208if (btn.tag)

212else

213

217218

//設定首尾動畫

三、簡單的動畫效果

簡單介紹首尾式動畫效果

(1)開始動畫

(2)設定動畫相關的時間等

(3)參與動畫的行動

(4)提交動畫

注:實現**參考上面的**

WPF 自定義UI控制項學習

最近專案中運用到了wpf處理三維軟體,在c s結構中wpf做ui還是有很多優越性,簡單的學了一點wpf知識,成功的完成專案目標。專案過度階段對於wpf的一些基本特點有了進一步了解 至此花費一點時間研究研究wpf控制項。為以後的專案開發中提供一些可觀的資源也是不錯的。目前控制項完成數量有限,空餘時間較...

QT 自定義類訪問UI控制項

qt 自定義類訪問ui控制項的幾種方法 qt建立窗體工程,一般在mainwindow或dialog類裡可以直接通過ui指標訪問控制項,但是新增新的類後又如何訪問呢,可以通過以下幾種方式 1.將ui指標公開後直接訪問 1 例如有個自己定義的類customclass,在自定義類裡包含主介面指標mainw...

自定義控制項 自定義鐘錶

private context mcontext 畫筆 private paint mpaint 控制項的寬 private int mwidth x方向的圓心座標 private int center 鐘錶的半徑 private int mradio 圓環的寬 private int stroke...