2017-11-24 21 views
1

UIButtonに別のUIView/UIButtonを作成して、別のUIViewの宣言で使用するようにしましたが、下のようなスクリーンショット(青色のビュー)を作成します。ちなみに、ボタンはストーリーボードに作成されています。UIButtonsフレームのコピーに間違った位置があります

私はXcodeの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で呼び出すことはできますか?私はそれが解決策になると思うが、それはまたうまくいかない。 –

関連する問題