添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

hihi,勇敢的小伙伴儿们大家好啊~忙里偷闲,学习一点新东西所以来给大家分享来了~

这次学习的东西非常简单,展示LivePhoto的功能~

为什么要学这个,哈哈哈,当初LivePhoto第一次出现的时候,我没有学它,后来微博出现了,我不以为意。直到抖音上线了带火了LivePhoto的生成功能,我才对这个起了兴趣,我自己也生成了一些LivePhoto作为我的锁屏背景,甚是有趣!但是!搜索生成LivePhoto的过程中,我没找到想找到的,我只是看到了展示LivePhoto的功能,就是微博上能够展示LivePhoto的效果,所以先把这个学了吧,由浅入深,很多东西就会变简单~

Demo传送门: 展示LivePhoto的Demo

首先,这个功能很简单很简单,主要的核心内容就是用PHLivePhotoView吧LivePhoto展示出来,这个PHLivePhotoView是官方给我们的一个类,需要导入Photos和PhotosUI的框架,然后PHLivePhotoView和UIImageView是一样的操作,只是UIImageView有的是image属性,PHLivePhotoView是LivePhoto的属性。PHLivePhotoView还提供了两种LivePhoto的动态效果。一种是持续数秒,我亲测效果就是自动播放几秒,还有一种是全部循环展示,这种是自动播放全部内容的效果。这里我后面再说,大家了解就好。

话不多说,上代码。

1.准备的真机是iPhone 6s及以上机型测试,6s以下机型不支持LivePhoto。

2.为了适配iOS10,请先在info.plist中设置隐私权限Privacy - Photo Library Usage Description.

我们需要调用UIImagePickerController获取手机相册中的Photo和LivePhoto展示。

3.添加MobileCoreServices框架,后面设置UIImagePickerController的mediaTypes需要。

4.添加Photos和PhotosUI框架,使用PHLivePhotoView需要。

5.调用UIImagePickerController,设置代理时遵守UIImagePickerControllerDelegate和UINavigationControllerDelegate协议。

UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
    ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    ipc.delegate = self;
    NSArray *mediaTypes = @[(NSString *)kUTTypeImage,(NSString *)kUTTypeLivePhoto];
    ipc.mediaTypes = mediaTypes;
    [self presentViewController:ipc animated:YES completion:nil];

6.代理方法

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info {
    [self dismissViewControllerAnimated:YES completion:^{
        PHLivePhoto *photo = [info objectForKey:UIImagePickerControllerLivePhoto];
        if (photo) { //LivePhoto
            for (UIView * view in self.view.subviews) {
                if ([view isKindOfClass:[UIImageView class]] || [view isKindOfClass:[PHLivePhotoView class]]) {
                    [view removeFromSuperview];
            PHLivePhotoView *photoView = [[PHLivePhotoView alloc] initWithFrame:CGRectMake(0, 50, self.view.frame.size.width, self.view.frame.size.height - 60)];
            photoView.livePhoto = photo;
            photoView.contentMode = UIViewContentModeScaleAspectFit;
            [self.view addSubview:photoView];
            //持续数秒效果
//            [photoView startPlaybackWithStyle:PHLivePhotoViewPlaybackStyleHint];
            //全部循环展示效果
//            [photoView startPlaybackWithStyle:PHLivePhotoViewPlaybackStyleFull];
            //停止动画
            //[photoView stopPlayback];
        } else { //普通照片
            for (UIView * view in self.view.subviews) {
                if ([view isKindOfClass:[PHLivePhotoView class]] || [view isKindOfClass:[UIImageView class]]) {
                    [view removeFromSuperview];
            UIImageView *photoView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 50, self.view.frame.size.width, self.view.frame.size.height - 60)];
            photoView.image = [info objectForKey:UIImagePickerControllerOriginalImage];
            photoView.contentMode = UIViewContentModeScaleAspectFit;
            [self.view addSubview:photoView];

其中注释掉了持续数秒和全部循环展示效果,小伙伴儿们可自行体验其效果~

好了,展示LivePhoto的教程到此结束~ 

如果有什么问题,麻烦小伙伴儿们评论或者在首页添加微信联系颜华,感谢~

前言hihi,勇敢的小伙伴儿们大家好啊~忙里偷闲,学习一点新东西所以来给大家分享来了~这次学习的东西非常简单,展示LivePhoto的功能~为什么要学这个,哈哈哈,当初LivePhoto第一次出现的时候,我没有学它,后来微博出现了,我不以为意。直到抖音上线了带火了LivePhoto的生成功能,我才对这个起了兴趣,我自己也生成了一些LivePhoto作为我的锁屏背景,甚是有趣!但是!搜索生成Live...
来自:http://www.devdiv.com/home.php?mod=space&uid=8639&do=blog&id=4104 iphone ipad 开发:结合UIImageView实现图片的移动和缩放 因为种种原因,需要在iphone应用中实现图片查看功能,由于iphone屏幕支持多点触摸,于是是想到用“手势”来实现图片的 实时缩放和移动。借鉴无所...
-(void)setupImageView{ //初始化一个imageView UIImageView * testImageView = [[UIImageView alloc] initWithFrame:self.view.frame]; //设置imageView的图片 testImageView... 支持长按保存图片到相册,支持横屏查看图片,查看长图。点击图片时的放大、缩小都做了动画效果。 整个模块以CollectionView控件来完成 只需要在你展示的地方 addSubview 即可 无需管理控制器,方便简洁可以直接修改,无需深 入代码来做修改。
本篇博文将详细介绍Photos.framework在日常开发中常用的一些api对相册的各种使用方法。 自己最近抽空写了一个相册多选框架,用到对一些对相册相关的操作,使用的便是iOS8.0之后,apple推出的新框架 Photos.framework github地址:https://github.com/longitachi/ZLPhotoBrowser ,会持续更新
问题背景描述: 在stroyBoard拖入PHLivePhotoView控件,在控制器中设置输入口引用 @IBOutlet weak var livePhotoView : PHLivePhotoView! 在代码中为livePhotoView设置展示livePhoto,模拟器运行正常,真机崩溃, 崩溃信息: -[UIView setLivePhoto:]: unrecognized selector sent to instance 0x1019b3370 处理过程: 1.控制台打印livePhotoV