2016-11-02 2 views
-2

나는 스토리 보드에서 컨테이너보기를 드래그하여 배경색을 검은 색으로 설정했습니다. 하지만 배경색은 바뀌지 않았습니다.컨테이너보기의 배경색을 설정하는 방법

class ViewController: UIViewController { 

@IBOutlet weak var container: UIView! 
override func viewDidLoad() { 
    super.viewDidLoad() 
    container.layer.backgroundColor = UIColor.blackColor().CGColor 
    // Do any additional setup after loading the view, typically from a nib. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


} 
+0

코드 또는 스토리 보드를 보여 주셔야합니다. –

답변

0

배경색은 어떻게 설정 했습니까?

컨테이너보기는 실제로는 viewController에 링크 된 일반보기입니다. 즉, 다른 NSView 또는 UIView와 동일한 방식으로 배경을 설정할 수 있습니다. 이것은 NSViewController 클래스에 추가해야하는 모든 코드입니다 (컨테이너의 viewController가 아니라 window의 viewController).

@IBOutlet weak var ContainerView: NSView! 
override func viewDidLoad() { 
    //other code in your viewDidLoad 
    ContainerView.wantsLayer = true 
} 
override func awakeFromNib() { 
    super.awakeFromNib() 
    ContainerView.layer?.backgroundColor = NSColor.black.cgColor 
} 

당신이 이미하지 않은 경우 함께 IBOutlet을 연결해야합니다.

viewDidLoad에서 레이어 배경색을 설정하면 해당 레이어가 아직 존재하지 않을 수 있습니다 (이유를 모르겠습니다). awakeFromNib에서 레이어에 액세스하면 항상 저에게 효과적이지만 viewDidLoad에서 액세스하는 것은 신뢰할 수 없습니다. 당신은 IOS에서 작업하는 경우

는, 이것의 대부분은 적용되지 않습니다, 나는 덜 IOS에서 작동

@IBOutlet weak var ContainerView: UIView! 
override func viewDidLoad() { 
    ContainerView.layer?.backgroundColor = UIColor.black.cgColor 
} 

이 당신이 필요로하는 모든해야한다, 그래서 그 어떤 문제로 실행하지 않은 있지만, 그것은 시도의 부족에서 일 수 있었다. OSX 설정에서 viewDidLoad의 배경색은 시간의 약 50 %에서 작동하므로 아직까지 겪어 보지 못한 문제가있을 수 있습니다.

아무 것도 작동하지 않으면 레이어를 선택 사항으로 남겨 두지 않고 레이어의 래핑을 시도하십시오 (!를!로 바꿉니다!) 그러면 최소한 프로그램이 중단되고 아마도 레이어가 nil이라고 말할 것입니다. 왜 그 레이어가 무효인지를 알아내는 것.

또한 컨테이너보기에 연결된 viewController가 사용자 정의 클래스 인 경우 IBOutlets에 신경 쓸 필요가 없습니다. 사용자 정의 클래스에서보기 "보기"를 호출하면됩니다.

죄송합니다. 조금 오래되었지만 도움이 되었기를 바랍니다.

+0

ContainerView.layer? .backgroundColor = UIColor.black.cgColor를 시도했습니다. 하지만 작동하지 않았다 – henry

+0

어디에서 이것을 설정 했습니까? IBOutlet이 스토리 보드를 통해 연결되어 있습니까? – C1FR1

관련 문제