2013-08-17 3 views
1

나는이 오류와 관련된 모든 답변을 살펴 보았습니다. (거의 모두는 this solution을 제안합니다) 그러나 내 문제는 다를 수 있습니다.
배경으로 특정 이미지가있는 둥근 사각형 UIButton이 필요합니다. 내가 사용하여, 내보기 컨트롤러 중 하나를 성공적으로 수행의이 first VC으로이 VC를 호출 할 수 있도록 관리 :이 VC에서 'cornerRadius'속성이 'CALayer'전달 클래스 개체에서 찾을 수 없습니다.

self.revealAnswerButton.layer.cornerRadius = 10; 

먼저 VC, 난 단지 #import <UIKit/UIKit.h>하지 <QuartzCore/QuartzCore.h> 가져온. 그리고 이것은 잘 작동합니다. 이유는 다음과 같습니다.

Q1. UIView 클래스는 위 코드에서 사용하는 @property layer을 가지고 있으므로 가져 오기 작업을하지 않아도 잘 작동합니다. Quartz 프레임 워크. 내 가정이 맞습니까?

다른 VC에서 이것을 두 번째 VC라고 부르 자. 같은 StoryBoard 동일한 코드 (self.startButton.layer.cornerRadius)에서 작동하지 않는다. 오류가 발생합니다 :
Property 'cornerRadius' cannot be found in forward class object 'CALayer'

Q2. 왜 다른 VC에서이 동작이 다른가요?

나는 근본 원인을 찾기 위해 노력하고 이것이 내가 찾은 것입니다 : UIView의의 @property layer이 같은 직접
을 처음 VC layer 특성에 매핑된다

Property 'cornerRadius' cannot be found in forward class object 'CALayer'

을하지만 내 두 번째 VC에서 layer는 다음과 같이 CALayer+layer 클래스 메소드로 라우팅된다

CALayer class method layer

여기에서 어디로 가야할지 모르겠다. (제발 나를 도울 수 있니? 시간 내 주셔서 감사합니다. 다른 정보가 필요한지 알려주십시오. 감사.

+0

난 당신이 당신이 코너 반경을 할 필요가의 ViewController 어떤 클래스 /에 추가 할 수 없습니다, 당신이 요구하는지 모르겠어요 사용 ? –

+0

를 두 번째 컨트롤러의 .m 파일로 가져 오십시오. – rdelmar

+0

@Saurabh Forward 클래스 'CALayer'에서 'cornerRadius'속성을 찾을 수 없다는 경고 메시지가 표시되면 QuartzCore 프레임 워크를 추가해야한다는 의미입니다. –

답변

1

여러분은 corner radius를 사용하여 viewcontroller로 가져와야합니다. 이와 만들기위한 corener 라운드 다음

self.revealAnswerButton.layer.cornerRadius = 5.0f; 
self.revealAnswerButton.layer.masksToBounds = YES; 
+0

나는'Quartz' 프레임 워크를 임포트 할 수 있고'cornerRadius'와'masksToBounds'를 사용하여 동일한 것을 얻을 수 있습니다.하지만 첫 VC에서 Quartz를 임포트하지 않고'UIKit' 만 가져 오면 첫 번째 VC에서 잘 동작합니다. 그래서 두 번째 VC에서 다른 게 뭐죠? thats 질문? 시간 내 줘서 고마워. –

+0

Quartz 클래스를 정의한 다른 클래스를 가져올 수있는 첫 번째 VC .h 및 .m 파일을 확인하십시오. 따라서 첫 번째 VC는 Quartz 클래스를 다른 클래스를 통해 간접적으로 가져옵니다. –

+0

나는 그 것을 검사했지만 수입 된 클래스 중 어느 것도 간접적으로'Quartz'를 사용하지 않습니다. 여기에 내 질문 1 양식 : UIView 클래스는 위의 코드에서 사용하고있는'@property layer'를 가지고 있으므로 Quartz Framework를 가져 오지 않고도 잘 작동합니다. 내 가정이 맞습니까? –

관련 문제