私はautolayoutを使用しています。UIScrollViewをUIViewにプログラムで追加すると、viewDidLoadでは機能しませんが、viewDidAppearで機能しますか?
以下のコードのように、プログラムでスクロールビューを追加します。ビューでinitShopViewを実行しようとしていますが、ロードできませんでしたが、それはうまく動作せず、表示するためにscrollviewを追加しません。ビュー階層のキャプチャが表示されています。
class variables:
@property(strong,nonatomic) UIScrollView *shopScrollView;
@property(strong,nonatomic) UIView *headView;
@property(strong,nonatomic) UIButton *favoriteButton;
- (void)viewDidLoad {
[super viewDidLoad];
[self initShopView];// not work
}
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[self initShopView];// will work
}
-(void)initShopView{
self.shopScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.superview.frame.size.height - slideTitleHeight)];
self.shopScrollView.contentSize = CGSizeMake(self.view.frame.size.width, 800);
self.headView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 100)];
self.favoriteButton = [[UIButton alloc]initWithFrame:CGRectMake(self.view.frame.size.width - 60, 10, 55, 55)];
[self.favoriteButton setTitle:@"Favorite" forState:UIControlStateNormal];
[self.favoriteButton setImage:[UIImage imageNamed:@"favoriteGreen.png"] forState:UIControlStateNormal];
[self.headView addSubview:self.favoriteButton];
[self.shopScrollView addSubview:self.headView];
[self.view addSubview:self.shopScrollView];
}
@Phillip Millsが解決策を与える。私のスクロールビューのフレームは
self.shopScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.superview.frame.size.height - slideTitleHeight)];
し、溶液は次のとおりです。
self.shopScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - slideTitleHeight)];
どこでautolayoutを使用していますか?プログラムで作成されたビューの場合、プログラムによってautolayoutを追加する必要があります。 –