ios开发仿写微信视频聊天界面
2017-12-12 18:56
1961 查看
自己开发时需求要求,就自己开发了一个,个人思路:
1、创建View放在window上
2、添加拖拽和显示手势
3、显示View
4、实现拖拽手势
5、实现点击放大的手势
6、取消移动
7、(1)效果图1
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/31/a18a27a00cc08e1733d40eec2a641db0)
(2)效果图2
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/31/69cc29572bb335c71d47bb1214fe8ecc)
(3)效果图3
1、创建View放在window上
self = [super initWithFrame:CGRectMake(0, SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT)]; self.backgroundColor = [UIColor purpleColor]; id <UIApplicationDelegate> delegate = [[UIApplication sharedApplication] delegate]; if ([delegate respondsToSelector:@selector(window)]) { self.window = [delegate performSelector:@selector(window)]; } else { self.window = [[UIApplication sharedApplication] keyWindow]; } [self.window addSubview:self];
2、添加拖拽和显示手势
UIPanGestureRecognizer *gesture = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panGestureRecognizer:)]; gesture.delegate = self; [self addGestureRecognizer:gesture]; UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapGestureRecognizer:)]; [self addGestureRecognizer:tapGesture]; [UIView setAnimationsEnabled:YES];
3、显示View
-(void)show { CGRect frame = self.frame; frame.origin.y = 0; [UIView animateWithDuration:0.4 animations:^{ self.frame = frame; }]; }
4、实现拖拽手势
-(void)panGestureRecognizer:(UIPanGestureRecognizer *)recognizer { if (!self.isSclae) { return; } CGPoint point = [recognizer translationInView:recognizer.view.superview]; CGPoint center = CGPointMake(recognizer.view.center.x + point.x,recognizer.view.center.y + point.y); if (center.x > SCREEN_WIDTH - recognizer.view.frame.size.width/2) { center.x = SCREEN_WIDTH - recognizer.view.frame.size.width/2; } else if (center.x < recognizer.view.frame.size.width/2) { center.x = recognizer.view.fram b55c e.size.width/2; } else if (center.y < recognizer.view.frame.size.width/2) { center.y = recognizer.view.frame.size.width/2; } else if (center.y > SCREEN_HEIGHT - recognizer.view.frame.size.width/2) { center.y = SCREEN_HEIGHT - recognizer.view.frame.size.width/2; } [UIView animateWithDuration:0.1 animations:^{ recognizer.view.center = center; [recognizer setTranslation:CGPointZero inView:recognizer.view.superview]; } completion:^(BOOL finished) { _lastPointX = center.x - recognizer.view.frame.size.width/2; _lastPointY = center.y - recognizer.view.frame.size.height/2; }]; }
5、实现点击放大的手势
-(void)tapGestureRecognizer:(UITapGestureRecognizer *)recognizer { [self.window bringSubviewToFront:self]; [[NSNotificationCenter defaultCenter]postNotificationName:@"ScaleBig" object:nil]; CGRect frame = self.frame; frame.origin.y = 0; frame.origin.x = 0; frame.size.width = SCREEN_WIDTH; frame.size.height = SCREEN_HEIGHT; [UIView animateWithDuration:0.2 animations:^{ self.frame = frame; } completion:^(BOOL finished) { self.isSclae = NO; }]; }
6、取消移动
-(void)hidden { CGRect frame = self.frame; frame.origin.y = SCREEN_HEIGHT; [UIView animateWithDuration:0.5 animations:^{ self.frame = frame; }completion:^(BOOL finished) { self.isSclae = NO; [self removeFromSuperview]; }]; }
7、(1)效果图1
(2)效果图2
(3)效果图3
相关文章推荐
- iOS微信聊天界面朋友圈多个小视频同时播放不卡顿
- IOS高访微信聊天对话界面(sizeWithFont:constrainedToSize和stretchableImageWithLeftCapWidth的使用)
- IOS高访微信聊天对话界面(sizeWithFont:constrainedToSize和stretchableImageWithLeftCapWidth的使用)
- iOS开发 - 第02篇 - UI进阶 - 04 - QQ聊天界面
- iOS自定义相机界面,实现微信小视频UI效果
- IOS高访微信聊天对话界面(sizeWithFont:constrainedToSize和stretchableImageWithLeftCapWidth的使用)
- iOS开发学习-类似微信聊天消息中的电话号码点击保存到通讯录中的功能
- 用 vue.js 开发微信 app(ios 版) 界面的 demo
- iOS 类似微信,QQ聊天界面的气泡聊天简单实现Demo
- iOS开发-自定义相机(仿微信)拍照、视频录制
- iOS开发之在客服开发之QQ, 在APP中打开指定qq聊天界面的方法
- 仿微信/QQ 开发基于XMPP的iPhone/iOS聊天客户端(一)好友资料
- iOS开发-仿微信图片分享界面实现
- 【iOS基础控件 - 11】【Demo】模仿qq ,微信 UI 聊天界面
- 用 vue.js 开发微信 app(ios 版) 界面的 demo
- iOS_29仿微信聊天界面
- IOS高访微信聊天对话界面(sizeWithFont:constrainedToSize和stretchableImageWithLeftCapWidth的使用)
- 【iOS开发】即时视频聊天实现
- iOS开发之微信聊天页面实现
- iOS开发之AVPlayer的精彩使用--->网易新闻视频播放界面的另类实现