Can';在swift中找不到什么是image.layer

Can';在swift中找不到什么是image.layer,swift,xcode,uiimageview,Swift,Xcode,Uiimageview,我在看如何使UIImageView循环。我能找到的就是: (图像必须是正方形) 但我在苹果的文档中找不到“图像”和“图层”属性。所以我不知道如何使用它。现在我犯了这样一个错误: 使用未解析的标识符“图像” 注意:我在代码中使用了imagehigher,没有问题 只有在您的案例中是myImage的UIImageView实例上才能访问.layer.cornerRadius零件 myImage.image指向UIImage,您无法访问.layer.cornerRadius零件 UIImage是您希望在

我在看如何使
UIImageView
循环。我能找到的就是: (图像必须是正方形)

但我在苹果的文档中找不到“图像”和“图层”属性。所以我不知道如何使用它。现在我犯了这样一个错误:

使用未解析的标识符“图像”

注意:我在代码中使用了
image
higher,没有问题


只有在您的案例中是
myImage
UIImageView
实例上才能访问
.layer.cornerRadius
零件

myImage.image
指向
UIImage
,您无法访问
.layer.cornerRadius
零件

UIImage
是您希望在屏幕上看到的图像资源,而
UIImageView
是在屏幕上显示该资源的资源

这是你能做的-

myImage.layer.cornerRadius = myImage.frame.size.height/2
myImage.clipsToBounds = true

您说您正在尝试将
UIImageView
制作成圆形。然后显示code
image.layer.cornerRadius=image.frame.size.height/2
。如果正在使用图像视图,请将其命名为
myImageView
,或
imageView
,而不是
image
。在我回答的其余部分中,我提到了一个名为
myImageView
的图像视图

UIView
对象有许多不同的属性。打开Xcode文档并查看
UIView
类参考,以了解有关
UIView
对象的许多属性的更多信息

UIKit是一个面向对象的框架,因此类从其他类继承。
UIImageView
UIView
的子类。它具有其父类的所有属性,以及图像视图特有的属性

UIImageView
是用于显示图像的视图。除了
UIView
properties之外,它还有一个属性
image
,用于保存图像视图应该显示的图像

如果声明图像视图:

@IBOutlet myImageView: UIImageView
然后,您可以使用如下代码将图像安装到该图像视图中

myImageView.image = UIImage(named: "icon")
也就是说“计算等号右边的东西,将结果分配给等号左边的东西。”

UIImage(名称:)
尝试从应用程序的“bundle”(包含应用程序中所有内容的文件夹)加载具有特定名称的
UIImage
。如果成功,则返回图像。如果不是,则返回nil

myImageView.image
是指
UIImageView
myImageView
image
属性。因此,该代码表示“尝试从应用程序目录加载名为‘icon’的图像,并将其安装到图像视图
myImageView


层: 所有
UIView
对象都有一个“背衬层”。在封面下,UIKit使用CoreAnimation框架将视图绘制到屏幕,而核心动画中绘制到屏幕的主要对象是
CALayer

当你说
myImageView.layer.cornerRadius=myImageView.frame.size.height/2
时,你是说“计算我的图像视图的边框高度的1/2(定义它在屏幕上的位置的矩形),并用它来设置视图图层的角半径。”


对于方形视图(与代码的下一行结合使用,
myImageView.clipsToBounds=true
)的作用是将视图的层(绘制到屏幕上的对象)变成圆形。正方形视图的角被剪掉,所有用户都可以看到中间的圆形部分。

请张贴实际代码而不是代码的图像,这些代码不可复制,不能由屏幕阅读器读取,不能搜索,等等。这些是UIIVIEVIEW的一部分,而不是UIIMAGE,并且上面的图像不是图像。Swift区分大小写。将其更改为小写,这样您就不会与SwiftUI Images重复。看起来您只需要将
图像
(它不存在——您确实有一个
UIImage
,带有大写变量名,正如错误所示)替换为
myImage
,这是您的
UIImageView
。摆脱缩短类型名称的习惯。如果您有一个
UIImageView
,请将其称为
myImageView
,而不是
myImage
。同样,对于
UIViewController
,将其称为
myViewController
,而不是
myView
UIImage
UIImageView
都是UIKit中的有效类型(以及
UIView
UIViewController
),如果你混淆了这些名称,你会把自己和阅读你代码的任何人弄糊涂。我明白了,非常感谢!我需要澄清一件事,当我写myImage.image=UIImage(名为:(“图标”))时,为什么我不能写:myImage=UIImage(名为:(“图标”)?
myImage.image=UIImage(名为:“图标”)
应该可以<代码>“icon”是一个
字符串
,这就是那里所需要的。我想Nikki的问题是关于等号左边的那个位。“我的图像”不是图像,而是图像视图。正如我在回答中所说的,在命名变量的方式上需要谨慎一致,以避免这种混乱。
myImageView.image = UIImage(named: "icon")