私はこの問題を一日中苦労しており、本当に助けが必要です。私がしようとしているのは、そのフレームがサブビューに基づいて調整するビューを作成することです。特定のビジネスルールに基づいて、サブビューを追加および削除する必要があります。ここではいくつかのサンプルコードは次のとおりです。サブビューに基づいてUIViewsフレームを調整する方法
-(void)createLinkedAccountDetailsHeaderView {
CGRect frame = CGRectMake(0, 0, 600, 220);
CDPAccountDetailsView *accountDetailsView = [[CDPAccountDetailsView alloc ] initWithFrame:frame withViewModel:self.viewModel isInEditState:self.isInEditState];
self.tableView.tableHeaderView = accountDetailsView;
}
- (instancetype)initWithFrame:(CGRect)frame withViewModel:(CDPDebitOrderDetailsReviewViewModel *)viewModel isInEditState:(BOOL) isInEditState {
self = [super initWithFrame:frame];
if (self) {
self.viewModel = viewModel;
self.isInEditState = isInEditState;
[self initialiseView];
[self configureWithAccountsView];
}
return self;
}
(void)initialiseView {
NSString *nibName = NSStringFromClass([self class]);
UINib *nib = [UINib nibWithNibName:nibName bundle:[SBResourcesBundle bundleWithName:[CDPResourceBundle bundleName]]];
[nib instantiateWithOwner:self options:nil];
[SBViewUtility addSubview:self.mainView withConstraintsToParentView:self];
[self layoutIfNeeded];
self.circleView.layer.cornerRadius = self.circleView.bounds.size.width /2;
//A lot of subview initialisation is done
[self layoutIfNeeded];
}
は、どのように私はUIViewのは、サブビューをラップアラウンドし、そのサブビューに基づいてフレームを変更するために得ることができますか?現在のところ、サブビューに関係なく常に固定フレームを使用しているため。
ターゲットが> ios 9スタックビューの場合は最適です。 –
残念ながら私はiosをターゲットにしなければなりません8 – user481610
これは役立つかもしれませんhttp://stackoverflow.com/questions/19170053/resize-superview-after-subviews-change-dynamically-using-autolayout –