【发布时间】:2016-11-30 12:39:42
【问题描述】:
我整天都在为这个问题苦苦挣扎,真的需要一些帮助。我想要做的是创建一个视图,其框架根据子视图进行调整。基于某些业务规则,我必须添加和删除子视图。下面是一些示例代码:
-(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
-
你能添加一些你的.xib的截图,或者你想要实现的小图吗?现在我正在重新阅读它,我不确定我的回答是否与您的问题有关。
标签: ios objective-c iphone uiview