@interface ChatRoomSpecialMessageView : UIView
- (instancetype)initWithFrame:(CGRect)frame;
/**
* 使用说明
* @param message 弹窗message
* @return 弹窗
*/
-(void)buildViewWithMessage:(NSString*)message;
@end
@implementation WSChatRoomSpecialMessageView
{
NSMutableArray *messageArr;
}
- (instancetype)initWithFrame:(CGRect)frame{
if (self = [super initWithFrame:frame]) {
self.backgroundColor = UIColorFromRGB(0xFC9274);
messageArr = [[NSMutableArray alloc] init];
}
return self;
}
-(void)buildViewWithMessage:(NSString*)message{
if (messageArr.count>0) {
//如果还有消息没消失,则等待4秒后再显示
double delayInSeconds = 4.0*messageArr.count;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
self.hidden = NO;
[self buildViewWithMessage:message];
});
return;
}
UILabel *messageLbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, self.frame.size.height)];
messageLbl.text = message;
messageLbl.textColor = [UIColor whiteColor];
messageLbl.font = [UIFont systemFontOfSize:12];
messageLbl.textAlignment = NSTextAlignmentCenter;
[self addSubview:messageLbl];
[messageArr addObject:messageLbl];
double delayInSeconds = 4.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[messageLbl removeFromSuperview];
[messageArr removeObject:messageLbl];
if (messageArr.count==0) {
self.hidden = YES;
}
});
}
@end
iOS聊天室广播的显示
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前言 因为目前在做的项目是IM项目,所以产品经常会提出些仿微信的需求。最近,又来了这么一个需求-聊天页顶部刷新要像...
- 前言:我们规定字符串中的表情以"["开始,"]"结尾。 1.首先我们分析一个字符串判断哪些是表情,哪些是文字然后加...
- 看书写分享不要写书上的内容要要分享自己的感受,今天看到这部分我特有感受,要带着爱去觉察孩子不是带着期待的。如何带爱...