2017-11-24 28 views
1

UIButton에 다른 UIView/UIButton을 만들어서 해당 프레임을 가져 와서 다른 UIView 선언에 사용하려고하지만 아래의 스크린 샷 (파란색보기)을 만듭니다. 그런데 스토리 보드에 버튼이 생성됩니다.UIButtons 프레임 복사 잘못된 위치를 제공합니다

내가 엑스 코드 9.1 및 iOS 11.1

- (void)viewDidLoad { 

    UIView *picker = [[UIView alloc] initWithFrame:_mButton.frame]; 
    picker.backgroundColor=[UIColor blueColor]; 
    [self.view addSubview: picker]; 
} 

Screenshot 1 Screnshot 2

답변

0

를 사용하고 있는데 나는 적절한 프레임이 viewDidLoad에서 계산되지 않습니다 같아요. 당신은 picker 속성을 물론 당신이 가능성이있는 경우 아마 최고의 sollution이 될 것입니다 스토리 보드 및 자동 레이아웃을 사용하여 오프 viewDidLayoutSubviews

@property (strong, nonatomic) UIView *picker; 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.picker = [[UIView alloc] initWithFrame:_mButton.frame]; 
    self.picker.backgroundColor=[UIColor blueColor]; 
    [self.view addSubview: self.picker]; 
} 

- (void)viewDidLayoutSubviews { 
    self.picker.frame = _mButton.frame; 
    [super viewDidLayoutSubviews]; 
} 

그러나 그것의 프레임을 조정하기 위해 시도 할 수 있습니다.

+0

여전히 나에게 잘못된 위치를 제공합니다. –

+0

경계를 사용하여 프레임을 설정하고 있습니까? 이렇게하면 : self.picker.frame = _mButton.frame 버튼 위치가 x = 0 및 y = 0이 아니므로 프레임이 정확하지 않을 수 있습니다. – knutigro

+0

ViewWillAppear에서 호출 할 수 있습니까? 나는 이것이 해결책이 될 것이라고 생각하지만 그것은 또한 효과가 없다. –