2016-06-28 3 views
2

그래서, 난이 다음과 같은 XIB제약 존중하지

enter image description here

tableviewcell 내가 결정 이후로했습니다이

enter image description here

모양으로로드이 XIB TableView가 필요하지 않으므로 XIB 클래스를 UITableViewCell에서 UIView로 변경했습니다. 의 ViewController에서 내가있는 viewDidLoad()

var nView = MyChartView.instanceFromNib() as! MyChartView 
self.view.addSubview(nView) 

에이 코드를 추가 내가 그 결과

enter image description here

당신이 볼 수 있듯이으로이있어, 그 여백을 무시하고 오른쪽으로 계속 (무시 붉은 색은 문제를 시도하고 디버그하기 위해 사용했기 때문에 차트 데이터가 문제가되지 않습니다. xib의 프레임 너비를 인쇄했는데 화면 크기보다 약간 큽니다. 그러나 수정하지 못했습니다. 누구나 문제를 파악할 수 있습니까?

답변

2

, 당신은 또한 내가 화면에 맞게 MyChartView 인스턴스의 프레임을 변경하려고했습니다

var nView = MyChartView.instanceFromNib() as! MyChartView 
self.view.addSubview(nView) 
nView.translatesAutoresizingMaskIntoConstraints = false 
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[nView]|", options: [], metrics: nil, views: ["nView": nView])) 
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[nView]|", options: [], metrics: nil, views: ["nView": nView])) 
1

서브 뷰를 추가 할 때 정확한 크기를 지정하거나 MyChartView 인스턴스와 해당 슈퍼 뷰간에 제약 조건을 프로그래밍 방식으로 추가하여 MyChartView 인스턴스의 너비를 제한하지 않았습니다. 이들 중 하나 또는 다른 것을하지 않고도 뷰의 크기는 xib에있는 것과 일치합니다. 프로그래밍 방식으로 하위 뷰를 추가 할 때

+0

하위 뷰와 수퍼 사이의 제약 조건을 추가해야하지만, 차이를하지 않았다. 나는 프로그램 적으로 제약을 추가하려고 노력할 것이다. 하지만 왜이 문제는 tableview에서 발생하지 않습니까? –

+2

'MyChartView'의'translateResizingMaskToConstraints'가'false'인지 확인하고 제약 조건 ('frame'을 설정하는 것뿐만 아니라)을 추가하여 슈퍼 뷰 내의 배치를 지시하도록 제안합니다. NRitH는 아마 맞을 것입니다. NIB가 자체 내에서 제약 조건을 가질 수는 있지만 자신과 Superview 사이에는 아무 것도 없습니다. 여전히 문제가 발생하면 프로그래밍 방식으로 추가 한 제약 조건을 표시하기 위해 질문을 편집 한 다음보기 디버거 또는 lldb를 사용하여 런타임에 제약 조건을 표시해야합니다. – Rob

+0

나는 너희들이 무슨 뜻인지 안다. 예를 들었을 때부터 Anil Varghese의 대답을 받아 들였다. 나는 여전히 그것이 tableview에서 제대로 작동하는지 이해하지 못한다. 그것은 tableview에서 제약 조건을 추론합니까? –