先上效果圖:
這個程式分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...