首页 > 代码库 > CALayer: autoresizingMask
CALayer: autoresizingMask
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];}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。