東引甌越

不断学习, 与时俱进. - 始于2017

嗨,我是孙亚洲(@sunyazhou13),一名来自北国冰城的iOS开发者,也搞过一些mac.现居帝都北京.开发数年有余,没有为往圣续绝学深感惭愧.望诸位同仁多多指教.


AVRoutePickerView

前言

最近无意中看了一下AVKit发现内部增加了很多新的内容.其中有个AVRoutePickerView的UI控件,打算研究一下. 其实这个很常见就在系统的控制中心 下拉屏幕就能看见 当你连接耳机或者无线蓝牙设备的时候.

这里网易云音乐中有实践的例子

这个控件主要用于AirPlay投屏 和音频的线路切换

那么我今天就跟大家一起学习一下这个新的控件

代码实现

导入#import <AVKit/AVKit.h>

剩下的就是创建实例调用方法

这里用ViewController做示例

@interface ViewController () <AVRoutePickerViewDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
if (@available(iOS 11.0, *)) {
AVRoutePickerView *routerPickerView = [[AVRoutePickerView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
routerPickerView.activeTintColor = [UIColor cyanColor];
routerPickerView.delegate = self;
[self.view addSubview:routerPickerView];
} else {
// Fallback on earlier versions
}
}
//AirPlay界面弹出时回调
- (void)routePickerViewWillBeginPresentingRoutes:(AVRoutePickerView *)routePickerView API_AVAILABLE(ios(11.0)){
NSLog(@"Airplay视图弹出");
}
//AirPlay界面结束时回调
- (void)routePickerViewDidEndPresentingRoutes:(AVRoutePickerView *)routePickerView API_AVAILABLE(ios(11.0)){
NSLog(@"Airplay视图弹回");
}
@end

添加完之后运行如下

AVRoutePickerView这个View提供的API 就两个颜色值剩下的啥都没有,啥都改不了,那怎么才能实现网易云音乐那样自定义图标呢?

添加自定义视图
UIImageView *imageView = [[UIImageView alloc] initWithFrame:routerPickerView.bounds];
imageView.image = [UIImage imageNamed:@"logo2"];
[routerPickerView addSubview:imageView];

自己加个图标即可.

总结

此控件只适用于iOS11以后,使用的时候 记得加可用性检测API

if (@available(iOS 11.0, *)) {
//这里写创建视图代码
}

这个控件在多数场景上提升了用户体验,比如音视频类app经常频繁接线控或者蓝牙耳机,那么对这个有要求的可以试试.感谢支持!

demo点击这里下载

最近的文章

Windows装机教程

前言 为了解决每次都重装windows电脑系统浪费时间,干脆整理一篇文章记录一下,方便后续修电脑总忘记各种工具 PE安装系统教程 PE工具箱制作 主要步骤: 第一步:制作前的软件、硬件准备:8G及以上U盘一个都可以, 一台可正常可上网的电脑 第二步:用电脑店U盘启动制作工具制作启动U盘 第三步:下 …

于  win7 继续阅读
更早的文章

iOS抖音滚动字幕

前言 很久没更新博客了(家里事情比较多时间太紧迫加上工作时间有限),今天给大家带来的是抖音得滚动字幕,也就是音乐专辑的专辑名称 废话不多说上图 抖音如下 系统的滚动字幕如下 本篇完成之后如下 支持蒙版渐变模糊 可调节 支持富文本字符串用于显示表情或者图片 开篇 整个实现比较简单 不超过 …

于  iOS开发, 抖音动画系列 继续阅读