博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CALayer: autoresizingMask
阅读量:6426 次
发布时间:2019-06-23

本文共 910 字,大约阅读时间需要 3 分钟。

UIView 可以设定 autoresizingMask,当它的 superView 尺寸改变时,适应何种变化。

不过 CALayer 却没有这个属性,如和做到让 CALayer 和 UIView 一样?可以这样:

// in ViewController- (void)viewWillLayoutSubviews{    _playerLayer.frame = self.view.bounds;}// in View- (void)layoutSublayersOfLayer:(CALayer *)layer{    _playerLayer.frame = self.bounds;}

 这不是一个好的办法。

当当~

自定义一个 UIView,重写它的 + (Class)layerClass 方法,像这样

@interface RFPlayerLayerView : UIView@end@implementation RFPlayerLayerView+ (Class)layerClass{    return [AVPlayerLayer class];}@end

 使用时设置一些参数,就可以完美拥有 UIView 的 autoresizingMask 的属性了

- (void)setup{    _layerView = [[RFPlayerLayerView alloc] initWithFrame:rect];    _playerLayer = (AVPlayerLayer *)[_layerView layer];    _playerLayer.player = _player;    _playerLayer.videoGravity = AVLayerVideoGravityResizeAspect;    _layerView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;    [self.view addSubview:_layerView];}

转载地址:http://jfyga.baihongyu.com/

你可能感兴趣的文章
Windows 2003 Server安全配置完整篇
查看>>
如何安装Oracle Database 11g数据库
查看>>
IPSEC ××× 的配置实例
查看>>
成人学习国画可能产生哪些错误的思想?
查看>>
百度地图笔记_多边形覆盖物区域加标签
查看>>
cocos2dx内存管理机制
查看>>
C语言中的内存分配
查看>>
Java异常处理-----运行时异常(RuntimeException)
查看>>
7、Libgdx网络操作
查看>>
普通电视串口 安装使用
查看>>
【学习/模板】tarjan割点
查看>>
PHP中常用的魔术方法
查看>>
C#反射----字段
查看>>
C#json操作
查看>>
基于openssl的单向和双向认证
查看>>
SpringMVC-核心配置文件spring-mvc.xml
查看>>
前一天作业讲解、pycharm使用、格式化输出、逻辑运算符
查看>>
Windows 8 系列(六):BackgroundTask 及其引起无法捕获的Crash
查看>>
老王学linux-文件权限
查看>>
IIS服务器 远程发布(Web Deploy)配置 VS2010 开发环境 Windows Server 2008服务器系统...
查看>>