IOS的乙個帶動畫的多項選擇的控制項 一

2021-12-29 20:43:36 字數 1689 閱讀 3462

先上效果圖:

這個程式分2個層次,乙個是頂部的帶uitextfield的bar,乙個是下拉選擇的view,下拉選擇的view帶有4個自定義的uiview

我們先定義乙個uiviewcontroller叫myviewcontroller,然後頂部的bar叫topbarview,下拉選擇的view叫typeselectview,像uibutton的自定義的view叫做typeview

typeview有兩種狀態,如果手指觸控到的item就是選中狀態,所以typeselectview應該有個屬性表示當前是哪個view被選中了,typeview中有個屬性叫做自己是否被選中

因為下拉框有收起和展示兩種狀態,所以typeselectedview有個屬性表示自己現在在哪種狀態

先來寫typeview:

#define typeview_width 76

#define typeview_height 76

@class typeselectview;

@inte***ce typeview : uiview

@property (nonatomic, assign) int typeid;

@property (nonatomic, assign) bool bselected;

@property (nonatomic,strong) typeselectview *typesview;

@end

touch事件:

-(void)touchesbegan:(nsset *)touches withevent:(uievent *)event

_bselected = yes;

_typesview.curselectedview = self;

[self setneedsdisplay];}}

然後是draw:

- (void)drawrect:(cgrect)rect

//draw image

nsstring* imagename = [nsstring string];

nsstring* text = [nsstring string];

imagename = @"mbwww.png";

if (_typeid == 0) else if(_typeid == 1)else if(_typeid == 2) else if(_typeid == 3)

if (_bselected)

//imagename給的view裡面的src image的名稱,有選中和沒選中兩種狀態

uiimage* typeimage = [uiimage imagenamed:imagename];

cgrect rc = rect;

rc.origin.x = (rc.size.width - typeimage.size.width) / 2;

rc.origin.y = 10;

rc.size = typeimage.size;

[typeimage drawinrect:rc];

//draw text 因為文字在image下面

cgpoint textpt = cgpointmake(rc.origin.x, rc.origin.y+rc.size.height+10);

[text drawatpoint:textpt withfont:[uifont systemfontofsize:14.0f]];

}

iOS實現乙個輕微晃動的提示動畫

我們需要用到乙個上下輕微晃動的動畫效果,提示有什麼東西,吸引使用者的注意。起因 上面的方案用transform實現,有點僵硬,動畫看上去不是很好,接下來用cakeyframeanimation來實現動畫 uibutton movebtn return movebtn pragma mark void...

乙個聖誕動畫的實現

看下面的例子 test.c include main char str i like linux i advices you jion in the linux world printf s n str exit 0 使用gcc編譯 輸入gcc c test.c得到目標檔案test.o。c命令表示對...

WPF乙個下雪的動畫

wpf乙個下雪的動畫,呼叫startsnowing方法,傳canvas面板會在指定面板內展示動畫,目前缺點就是滑鼠會一直處於載入中狀態。直接貼 三種雪花樣式,下降加旋轉動畫 void startsnowing canvas panel break case 1 pack new packiconma...