UIScrollView に 7 つの UIButton があります。上位 3 つの UIButton は、コード内の if ステートメントに応じて非表示または表示にできます。つまり、3 つの UIButton が表示される可能性は 8 つあります。私が抱えている問題は、UIScrollView のコンテンツ サイズを調整して、「空の」スペースがないようにすることです。たとえば、中央の UIButton が非表示になっているが、その上下の UIButton が表示されている場合、空のスペースが残っています。スクロールビューですべてのボタンを隙間なく上下に合わせる方法はありますか?
このコードを試しましたが、うまくいきませんでした:
if([[facilities objectAtIndex:0]intValue] == 1) {
facilitiesButton.hidden = NO;
}
if([[ListingsEnabled objectAtIndex:0]intValue]==1) {
ListingsBtn.hidden = NO;
}
if([[OffersEnabled objectAtIndex:0]intValue]==1) {
OffersBtn.hidden = NO;
}
CGFloat scrollViewHeight = 0.0f;
self.DetailScrollView.showsHorizontalScrollIndicator = NO;
self.DetailScrollView.showsVerticalScrollIndicator = NO;
for (UIView* view in self.DetailScrollView.subviews)
{
if (!view.hidden)
{
CGFloat y = view.frame.origin.y;
CGFloat h = view.frame.size.height;
if (y + h > scrollViewHeight)
{
scrollViewHeight = h + y;
}
}
}
self.DetailScrollView.showsHorizontalScrollIndicator = YES;
self.DetailScrollView.showsVerticalScrollIndicator = YES;
[self.DetailScrollView setContentSize:(CGSizeMake(self.DetailScrollView.frame.size.width, scrollViewHeight))];