@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聊天室广播的显示
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 前言 因为目前在做的项目是IM项目,所以产品经常会提出些仿微信的需求。最近,又来了这么一个需求-聊天页顶部刷新要像...
- 前言:我们规定字符串中的表情以"["开始,"]"结尾。 1.首先我们分析一个字符串判断哪些是表情,哪些是文字然后加...
- 看书写分享不要写书上的内容要要分享自己的感受,今天看到这部分我特有感受,要带着爱去觉察孩子不是带着期待的。如何带爱...