Iphone Isn';UIView的属性层是否为只读?
UIView的属性层在苹果的文档中描述如下:Iphone Isn';UIView的属性层是否为只读?,iphone,ios,transform,layer,Iphone,Ios,Transform,Layer,UIView的属性层在苹果的文档中描述如下: NSLog(@"before: %f",self.myView.laye.frame.size.width); [self.myView.layer setAffineTransform:CGAffineTransformMakeScale(2, 2)]; NSLog(@"after: %f",self.myView.laye.frame.size.width); //log shows us that the frame is modified
NSLog(@"before: %f",self.myView.laye.frame.size.width);
[self.myView.layer setAffineTransform:CGAffineTransformMakeScale(2, 2)];
NSLog(@"after: %f",self.myView.laye.frame.size.width);
//log shows us that the frame is modified
图层
用于渲染的视图的核心动画层。(只读)
很明显,它是只读的。但在我的项目中,为什么可以设置如下:
NSLog(@"before: %f",self.myView.laye.frame.size.width);
[self.myView.layer setAffineTransform:CGAffineTransformMakeScale(2, 2)];
NSLog(@"after: %f",self.myView.laye.frame.size.width);
//log shows us that the frame is modified
在这种情况下真的很困惑。有人能帮我吗?提前谢谢 层属性是只读的,这意味着您不能为另一个层更改层,但是属性中包含的
CALayer
对象不是不可变的,您可以设置自己的属性
你不能这样做:
self.myView.layer = newLayer;
// equivalent to [self.myView setLayer:newLayer];
但你可以做到:
[self.myView.layer setAffineTransform:CGAffineTransformMakeScale(2, 2)];
您不能使用的是
setLayer:
选择器。属性layer
是只读的,这意味着您不能更改另一个层,但是属性中包含的CALayer
对象不是不可变的,您可以设置它自己的属性
你不能这样做:
self.myView.layer = newLayer;
// equivalent to [self.myView setLayer:newLayer];
但你可以做到:
[self.myView.layer setAffineTransform:CGAffineTransformMakeScale(2, 2)];
您不能使用的是设置层:
选择器。不是UIKit的一部分。它是石英核心框架的一部分
而类是UIKit的一部分。您可以阅读两者的文档以了解它们的区别
UIView继承自NSObject,CALayer也继承自NSObject,因此在您执行以下操作时:[self.myView.layer setAffineTransform:CGAffineTransformMakeScale(2,2)]
您没有分配图层,实际上是直接访问类图层属性,因此您可以处理图层的位置、大小和变换,正如您在文档中看到的,它允许所有这些内容不是UIKit的一部分。它是石英核心框架的一部分
而类是UIKit的一部分。您可以阅读两者的文档以了解它们的区别
UIView继承自NSObject,CALayer也继承自NSObject,因此在您执行以下操作时:[self.myView.layer setAffineTransform:CGAffineTransformMakeScale(2,2)]
您没有分配层,实际上是直接访问类层属性,因此您可以处理层的位置、大小和转换,正如您在文档中所看到的,它允许所有这些功能Quartzcore是一个核心级框架,但UIkit仅作为IOS的更高级别框架构建,因此,使用Quartzcore CALayer可以访问视图图层的属性。还有什么疑问吗,我的朋友?Quartzcore是一个核心级别的框架,但UIkit只是作为IOS的更高级别框架构建的,因此使用Quartzcore CALayer您可以访问视图层的属性。还有什么疑问吗,我的朋友?