介紹
項(xiàng)目開發(fā)中因?yàn)樾枰粋€(gè)消息提醒压昼,找了相當(dāng)久都沒(méi)找到合適的,最后決定還是自己來(lái)寫一個(gè)吧钧大。渣就渣翰撑,起碼能夠符合需求。
通過(guò)這么弄一弄啊央,倒是加深了對(duì)UIView自帶的動(dòng)畫效果的認(rèn)識(shí)眶诈,這也是個(gè)不錯(cuò)的結(jié)果。
<br />
效果
恩瓜饥,大概就是這樣逝撬。
AlertMessage.h
@interface AlertMessage : UIView
-(id)initWithY:(CGFloat)y andTitle:(NSString *)title; //用字符串和顯示坐標(biāo)來(lái)初始化
-(id)initWithY:(CGFloat)y;
-(id)initWithTitle:(NSString *)title;
-(void)setStartWithY:(CGFloat)y; //設(shè)置顯示坐標(biāo)
-(void)setTitle:(NSString *)title; //設(shè)置顯示字符串
-(void)showWithCover:(BOOL)boolean; //顯示并設(shè)置顯示之后還能否操作
-(void)dismiss; //移除提醒
-(void)setTitleColor:(UIColor *)titleColor; //設(shè)置字符串顏色
-(void)setAlertColor:(UIColor *)alertColor; //設(shè)置背景顏色
-(void)setAlertColor:(UIColor *)alertColor andTitleColor:(UIColor *)titleColor;
-(void)setDismissOnLeft:(BOOL)isOnLeft; //設(shè)置從哪個(gè)方向消失
@end
頭文件里面大概就是這樣的結(jié)構(gòu)。
可以設(shè)置顯示的地方乓土,顯示的文字宪潮,很簡(jiǎn)單。實(shí)現(xiàn)的功能也很簡(jiǎn)單趣苏。
<br />
AlertMessage.m
其實(shí)在實(shí)現(xiàn)文件里面狡相,核心只有一個(gè)。那就是設(shè)置好起始坐標(biāo)食磕,以及播放動(dòng)畫后所移動(dòng)到的坐標(biāo)尽棕。
大概就是:
#define HEIGHT_ALERT 55
#define WIDTH_ALERT 180
#define Y_OFFSET_ALERT 100
#define X_OFFSET_ALERT (320 - WIDTH_ALERT)
……
-(id)init {
self = [self initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width, Y_OFFSET_ALERT, WIDTH_ALERT, HEIGHT_ALERT)];
//設(shè)置初始位置,就是在屏幕之外了
return self;
}
-(void)show{
[UIView animateWithDuration:0.35f animations:^{
[self setFrame:CGRectMake([UIScreen mainScreen].bounds.size.width - WIDTH_ALERT, self.y, WIDTH_ALERT, HEIGHT_ALERT)];
//動(dòng)畫執(zhí)行彬伦,并移動(dòng)到結(jié)束位置
} completion:^(BOOL finished) {
//動(dòng)畫結(jié)束后執(zhí)行
}];
}
-(void)dismiss{
[UIView animateWithDuration:duration animations:^{
[self setFrame:CGRectMake(endPoint, Y_OFFSET_ALERT, WIDTH_ALERT, HEIGHT_ALERT)];
//動(dòng)畫執(zhí)行萄金,并移動(dòng)到結(jié)束位置
} completion:^(BOOL finished) {
//動(dòng)畫結(jié)束后執(zhí)行
}];
}
上面就是實(shí)現(xiàn)文件里面的核心部分了,其實(shí)就是播放動(dòng)畫媚朦。
寫在最后
第一次嘗試著寫這樣的自定義類氧敢,封裝也花了不少時(shí)間。
最后做出了項(xiàng)目需要的效果询张,也是感慨孙乖。
至于源代碼,找到合適的地方之后就會(huì)放出,反正這么簡(jiǎn)單的東西唯袄。大牛都表示一看就知道怎么弄了弯屈!