2015-01-22 2 views
2

두 개의 레이블이있는 MyCustomView를 만들었습니다. 하나는 왼쪽에, 다른 하나는 오른쪽 정렬과 오른쪽에 있습니다. 약 30px 높이입니다 (중요하지 않습니다). xib에 연결하면 작동합니다. .xib에서 주보기 너비를 400px로 설정하고 라벨에 자동 레이아웃 제한을 설정합니다.iOS Layout 사용자 정의보기가 크기가 조정될 때 xib로 생성됩니다.

이제 문제가 발생했습니다. IB에서 내 컨트롤러에 UIView를 추가하고 클래스를 MyCustomView로 설정하면 왼쪽 레이블이 보이지만 오른쪽 레이블은 화면 밖입니다. 제약 조건을 올바르게 설정했지만 작동하지 않습니다. .xib에서 MyCustomView의 크기를 마우스로 조정하려고 할 때 가장자리로 이동하려고했지만 괜찮 았지만 오른쪽 열에 "수동으로"너비 값을 설정하면 오른쪽으로 레이아웃되지 않습니다 (전혀 변경되지 않음). 문제가 어디에 있습니까? 이 문제를 어떻게 해결할 수 있습니까?

@implementation MyCustomView 

- (id)initWithCoder:(NSCoder *)aDecoder 
{ 
    self = [super initWithCoder:aDecoder]; 
    if (self) { 
     [self commonInit]; 
    } 
    return self; 
} 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     [self commonInit]; 
    } 
    return self; 
} 

- (void)commonInit 
{ 
    self.backgroundColor = [UIColor clearColor]; 

    self.view = [[[NSBundle mainBundle] loadNibNamed:@"MyCustomView" 
               owner:self 
              options:nil] firstObject]; 

    [self addSubview:self.view]; 
    //self.translatesAutoresizingMaskIntoConstraints = NO; 
} 

- (void)awakeFromNib { 
    [super awakeFromNib]; 

    //[self setNeedsUpdateConstraints]; 
    //[self setNeedsLayout]; 
} 

@end 

의견에서 볼 수 있듯이 나는 어떤 방법을 시도했지만 아무 도움도주지 못했습니다.

+0

레이블에 자동 레이아웃 제약 조건을 설정했다고 말했습니까? 정확히 짧게 한 것을 설명 할 수 있습니까? – aytunch

+0

오른쪽 레이블의 경우 제약 조건을 설정합니다 : 너비를 100, 위쪽, 아래쪽 및 후행 공백을 0으로 설정하십시오. –

+0

사용자 정의 뷰를 수퍼 뷰에 추가 한 후에 제약 조건을 추가하면 안됩니까? –

답변

1
  1. 새 파일 -> 아이폰 OS (소스) - 코코아 터치 -> 다음 New File

  2. 이름 MyCustomView

MyCustomView.m

에 코드를 추가 입력
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
     //self.view.backgroundColor = [UIColor redColor]; 
     self.preferredContentSize = CGSizeMake(30.0, 400.0); 
    } 
    return self; 
} 
관련 문제