1.用NSTimer做一个定时器
2.随机一个弹道,判断该弹道是否有别的字在跑着
3.如果没有的话,将KSBarrageItemView加入到弹道里
4.然后随机个速度进行动画移动
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
- (
void
)postView {
if
(_dataArray && _dataArray.count > 0) {
int
indexPath = random()%(
int
)((self.frame.size.height)/30);
int
top = indexPath * 30;
UIView *view = [self viewWithTag:indexPath + ITEMTAG];
if
(view && [view isKindOfClass:[KSBarrageItemView
class
]]) {
return
;
}
NSDictionary *dict = nil;
if
(_dataArray.count > _curIndex) {
dict = _dataArray[_curIndex];
_curIndex++;
}
else
{
_curIndex = 0;
dict = _dataArray[_curIndex];
_curIndex++;
}
for
(KSBarrageItemView *view in self.subviews) {
if
([view isKindOfClass:[KSBarrageItemView
class
]] && view.itemIndex == _curIndex-1) {
return
;
}
}
KSBarrageItemView *item = [[KSBarrageItemView alloc] initWithFrame:CGRectMake([[UIScreen mainScreen] bounds].size.width, top, 10, 30)];
id avatar = [dict objectForKey:@
"avatar"
];
NSString *content = [dict objectForKey:@
"content"
];
if
([avatar isKindOfClass:[UIImage
class
]]) {
[item setAvatarWithImage:avatar withContent:content];
}
else
if
([avatar isKindOfClass:[NSString
class
]]){
UIImage *image = [UIImage imageNamed:avatar];
if
(image) {
[item setAvatarWithImage:image withContent:content];
}
else
{
// 这里使用网络图片,请加入sdwebImage库
// [item setAvatarUrl:avatar withContent:content];
}
}
else
{
return
;
}
item.itemIndex = _curIndex-1;
item.tag = indexPath + ITEMTAG;
[self addSubview:item];
CGFloat speed = 85.;
speed += random()%20;
CGFloat
time
= (item.width+[[UIScreen mainScreen] bounds].size.width) / speed;
[UIView animateWithDuration:
time
delay:0.f options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionCurveEaseInOut animations:^{
item.left = -item.width;
} completion:^(
BOOL
finished) {
[item removeFromSuperview];
}];
}
}
|