2016-03-24 15 views
0

サブビューとしてUIScrollViewを含むcustomView(UIView)を作成しましたが、scrollViewに配置した オブジェクトは表示されませんでした。これをテストするために、scrollViewにUIViewを追加しましたが、どちらも表示されませんでした(下のコード例を参照)。 scrollViewに入れたいコンテンツは動的なので、私はAutoLayoutを使用するだけで問題にアプローチしたいと思います。私はさまざまな方法を試して、オンラインで指示に従いました、それのどれもうまくいきませんでした。すべての同様の質問はUIViewControllerの内部で作成されたUIScrollViewでした。ここでUIViewのサブビューとしてのUIScrollViewが自動レイアウトで機能しない

は、私は、石積みを使用しています、私のコードです:ここでは

@interface CustomView : UIView 

@end 

@implementation CustomView 

- (instancetype)init { 
    if (self = [super init]) { 

     self.scrollView = [[UIScrollView alloc]init]; 
     self.scrollView.backgroundColor = [UIColor redColor]; 
     [self addSubview:self.scrollView]; 
     [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) { 
      make.edges.equalTo(self); 
     }]; 

    //Here I add someView to the scrollView, and when I create an instance of the scrollView, the someView does not show. 

    self.someView = [[UIView alloc]init]; 
    self.someView.backgroundColor = [UIColor blackColor]; 
    [self.scrollView addSubview:self.someView];   
    [self.someView mas_makeConstraints:^(MASConstraintMaker *make) { 
     make.edges.equalTo(self.scrollView); 
     make.size.equalTo(CGSizeMake(40, 40)); 
    }]; 
} 
return self; 
} 

は私がのCustomView

CustomView *customView = [[CustomView alloc]init]; 
[self.view addSubview: customView]; 
[customView mas_makeConstraints:^(MASConstraintMaker *make) { 
    make.top.equalTo(64.0); 
    make.height.equalTo(40.0); 
    make.leading.trailing.equalTo(0); 
}]; 

のインスタンスを作成する方法です私はsomeViewの原因となっている逃したか、間違っていた何かがあります見せない?

ありがとうございました。

+0

スクロールビューが期待通りに表示されていますか?そうでなければ、scrollviewとsomeviewの制約を設定するときに適切なフレームが得られるかどうかをチェックしてください。また、コンソールに自動レイアウトエラーが表示されていますか? – HardikDG

+0

ブレークポイントを設定してスクロールビューを確認するための@pyroありがとうございました。疲れていて、ビューが正しく作成されました。協力者がUIViewの冗長レイヤーを削除し、AutoLayoutを適切に使用してこのバグを解決する手助けをしました。 – CeliaLi

答えて

0

私はこの問題を解決しました。1)UIView(my customView)のサブビューではなく、scrollViewを直接使用しました。 2)scrollViewの右と下の制約を必ず追加してください。

関連する問題