貓貓分享移稳,必須精品
原創(chuàng)文章,歡迎轉(zhuǎn)載收奔。轉(zhuǎn)載請注明:翟乃玉的博客
地址:http://www.reibang.com/notebooks/4236923/latest
一:問題來源:
不知如何說,總之公司項目皿桑,做直播撒会,然后百度嘹朗,發(fā)現(xiàn)有一個demo可以用,然后用的時候發(fā)現(xiàn)了各種問題诵肛,比如送的禮物的個數(shù)不對屹培,比如和實際的情況不盡相同. 長連接過來的數(shù)據(jù)都是禮物數(shù)量為1的. 不可能給足所有禮物數(shù)量的。比如動畫的分發(fā)很不合理怔檩,最嚴(yán)重的莫過于送不同的禮物也會給第一個禮物累加褪秀。。薛训。媒吗。。乙埃。闸英。
二:解決:
話不多說,直接看圖
1:思路:從網(wǎng)上demo中我知道了描邊 還有放大縮小動畫效果介袜,已知右側(cè)出來的是view動畫自阱,調(diào)控x的值就好。然后結(jié)構(gòu)如圖:
2:model
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface NYGiftModel : NSObject
@property (nonatomic,strong) UIImage *headImage; // 頭像圖片
@property (nonatomic,strong) UIImage *giftImage; // 禮物圖片
@property (nonatomic,copy) NSString *name; // 送禮物者
@property (nonatomic,copy) NSString *giftName; // 禮物名稱
@property (nonatomic,copy) NSString *giftKeyID;//唯一標(biāo)示禮物的ID key
@end
模型可以擴展米酬,簡單明了, 這里我用giftKeyID來唯一標(biāo)示禮物的ID(隨意)
3:主要view
NYShakeLabel
這個就是描邊的label趋箩,不啰嗦赃额, 唯一值得說的是我將動畫完成的block通過方法傳出了:
- (void)startAnimWithDuration:(NSTimeInterval)duration completion:(void (^ __nullable)(BOOL finished)) completion;
NYPresentView
最繁瑣的。叫确。跳芳。 貓貓現(xiàn)在腦細(xì)胞不足,想深入了解可以私聊我 竹勉,因為這里并沒有用多線程(用gcd做了一個延遲操作飞盆,你想用nstimer也行)也沒有用高深東西,都是邏輯性的(算是算法吧次乓。吓歇。。)
NYGiftMainView
本來想叫他manger類的票腰。城看。 目的就是為了可以繼承起來簡單。杏慰。 然而腦抽取了這名字也不想改了测柠,就這樣吧臨時炼鞠。
這里就說一下咋用吧,首先 拖進去轰胁,然后創(chuàng)建個模型谒主,最后找個button 寫個方法啥的:
NYGiftModel *giftModel = [NYGiftModel new];
giftModel.headImage = [UIImage imageNamed:@"hashiqi"];
giftModel.name = @"哈士奇";
giftModel.giftImage = [UIImage imageNamed:@"house"];
giftModel.giftName = @"房子";
giftModel.giftKeyID = [NSString stringWithFormat:@"%@%@",giftModel.name,giftModel.giftName];
[self.mainView addModel:giftModel];
沒錯,將 [self.mainView addModel:giftModel]; 這個方法執(zhí)行下赃阀,把model扔進去就能用了霎肯。。凹耙。姿现。