【发布时间】:2013-08-17 05:59:08
【问题描述】:
我已经查看了与此错误相关的所有答案(几乎所有答案都建议 this solution),但我的问题似乎有所不同。
我想要一个带有特定图像作为背景的圆角矩形 UIButton。我设法在我的一个视图控制器中成功地做到了这一点,让我们将此 VC 称为first VC,使用:
self.revealAnswerButton.layer.cornerRadius = 10;
在这个 VC 中,第一个 VC,我只导入了 #import <UIKit/UIKit.h> 而不是 <QuartzCore/QuartzCore.h>。这很好用。我想这是因为:
第一季度。 UIView 类具有我在上面的代码中使用的@property layer,因此它可以正常工作,甚至无需导入Quartz 框架。我的这个假设对吗?
让我们继续:在我的另一个 VC 中,我们将其称为第二个 VC,在相同的 StoryBoard 中相同的代码 (self.startButton.layer.cornerRadius) 不起作用。它抛出错误:Property 'cornerRadius' cannot be found in forward class object 'CALayer'
第二季度。为什么在不同的 VC 中会有不同的行为?
我试图找到根本原因,这就是我发现的:
在我的第一个 VC 中,layer 属性直接映射到 UIView 的@property layer,如下所示:
但在我的第二个 VC 中,layer 正在路由到 CALayer 的 +layer 类方法,如下所示:
我不知道从哪里开始 :( 你能帮我吗?非常感谢您抽出宝贵的时间。如果需要任何其他信息,请告诉我。谢谢。
【问题讨论】:
-
我不确定你在问什么,你不能把
添加到你需要做圆角半径的任何类/视图控制器中吗? -
将
导入您的第二个控制器的 .m 文件中。 -
@Saurabh如果你在前向类对象'CALayer'中找不到Property 'cornerRadius'这样的警告,这意味着你需要添加QuartzCore框架。
-
在完成上述所有杂耍之后,我尝试将 Quartz 框架也添加到我的第二个 VC 中。这确实遏制了错误,但没有绕过按钮。所以我想我会先解决这个问题,如果这不起作用,然后再次添加 Quartz 并检查为什么按钮没有使用
cornerRadius。非常感谢您的快速回复。 -
第一层属性只是一个转发类,第二个VC知道类定义。来自不同 VC 的 2 个按钮的类型和类别是否相同?
标签: ios cocoa-touch calayer