gpt4 book ai didi

iphone - 需要调整控件 (UISlider) 的大小以填充所有可用的 UIToolbar 空间 (iOS)

转载 作者:行者123 更新时间:2023-11-29 04:54:18 25 4
gpt4 key购买 nike

我需要调整 UISlider 的大小以填充所有可用的 UIToolbar 空间,并且它必须在 iOS 4.3 和 iOS 5.0 下工作。 (嗯,我有一些适用于 5.0 的东西,但对于 4.3 来说它仍然是一个谜。)

有一个 UIToolbar,其按钮是动态配置的,包括仅在横向方向上显示的按钮。 (全套在 Interface Builder 中指定,其中一些通过 bar.items = FilteredItems 删除)在左侧和右侧的按钮之间,有一个 slider (和一个灵活的空间)旁边)。

我希望 slider 填充两组按钮(左组和右组)之间的所有可用空间。

最佳答案

这就是我计算所有栏按钮项目宽度的方法。

主要思想是它们的顺序并不重要,我们可以使用 IBOutletCollection:

@property (nonatomic, strong) IBOutletCollection(UIButton) NSArray *allButtons;

在方向更改之前执行的代码中:

const CGFloat leftOrRightMargin = 12; // measured on a screenshot
const CGFloat gapBetweenButtons = 10; // measured on a screenshot
const CGFloat experimentalCorrection = 6; // don't ask why

int totalNumberOfButtons = 0;
CGFloat totalWidthOfButtons = 0.0;
for (UIButton *b in allButtons) {
if (b.superview) { // if it's visible
totalNumberOfButtons++;
totalWidthOfButtons += b.bounds.size.width;
}
}
CGFloat occupiedSpace = experimentalCorrection
+ 2 * leftOrRightMargin
// gaps: totalNumberOfButtons-1+1, the last one is for the slider
+ totalNumberOfButtons * gapBetweenButtons
+ totalWidthOfButtons;
// now, resize the slider control

方向改变后:

[myBar setNeedsLayout];

关于iphone - 需要调整控件 (UISlider) 的大小以填充所有可用的 UIToolbar 空间 (iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8278052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com