按照慣例,先貼GitHub原始碼地址
導航
目標:
- 彈幕過幾秒自動消失
- 實現A使用者彈幕出現時,B使用者傳送禮物,B使用者彈幕在A使用者彈幕下方,A/B使用者彈幕存在時,A/B使用者連續傳送禮物,彈幕顯示的禮物數量增加,誰的禮物數量較大,誰的彈幕在上方。
- A/B使用者彈幕存在時,C使用者傳送禮物,A/B使用者中較早出現的彈幕被替換成C使用者的彈幕資料,並且C使用者的彈幕處於下方
版本更新:
V1.0
- 大致實現了不同使用者增加彈幕的效果
V1.1
- 實現了使用者連續傳送數字增加效果
- 實現了新增彈幕從空位出現的效果
V1.2
- 實現了第二個使用者之後送禮物替換較早的彈幕效果(完善)
V1.3
- 實現了上面的檢視移除後,正在連擊的下面的檢視移動到上面的效果
V1.4
- 實現了目標效果???
快速使用
使用的第三方庫:
兩個模型:
ZYGiftListModel
和UserModel
ZYGiftListModel
是用來顯示彈幕上右側禮物圖片picUrl
和打賞的語句rewardMsg
的,禮物有type
欄位UserModel
是用來顯示送禮物的人的名稱name
和頭像iconUrl
只需要匯入即可
#import "LiveGiftShow.h"
@property (nonatomic ,weak) LiveGiftShow * giftShow;
- (LiveGiftShow *)giftShow{
if (!_giftShow) {
LiveGiftShow * giftShow = [[LiveGiftShow alloc]init];
[self.view addSubview:giftShow];
_giftShow = giftShow;
[giftShow mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.equalTo(@244);
make.height.equalTo(@50);
make.left.equalTo(self.view.mas_left);
make.top.equalTo(self.view.mas_top).offset(100);
}];
}
return _giftShow;
}複製程式碼
- 在開發中使用
LiveGiftShowModel * listModel = [LiveGiftShowModel giftModel:self.giftArr[3]
userModel:[UserModel random]];
[self.giftShow addGiftListModel:listModel];複製程式碼
即可完成接入。每一次點選只需要[self.giftShow addGiftListModel:listModel];
即可自動計數加一。最高支援顯示9999。
自定義配置
LiveGiftShow
管理所有彈幕的檢視
兩個彈幕之間的高度差 | 兩個交換動畫時長 |
---|---|
kGiftViewMargin | kExchangeAnimationTime |
50.0 | 0.25 |
LiveGiftShowView
一個彈幕的檢視
彈幕背景寬 | 彈幕背景高 | 送禮者名稱字號 | 送禮者名稱文字顏色 | 禮物寄語字號 | 禮物寄語文字顏色 |
---|---|---|---|---|---|
kViewWidth | kViewHeight | kNameLabelFont | kNameLabelTextColor | kGiftLabelFont | kGiftLabelTextColor |
240.0 | 44.0 | 12.0 | whiteColor | 10.0 | orangeColor |
每個數字圖片寬度 | 彈幕幾秒後消失 | 數字改變動畫時長 | 彈幕消失動畫時長 |
---|---|---|---|
kGiftNumberWidth | kTimeOut | kNumberAnimationTime | kRemoveAnimationTime |
15.0 | 3 | 0.25 | 0.5 |
關於我
- 再次貼出GitHub原始碼地址,喜歡就點讚唄
- 如果在使用過程中遇到問題,或者想要與我分享/吐槽/建議/意見jonhory@163.com