gpt4 book ai didi

ios - 从某些 UISegmentedControl 索引获取帧?

转载 作者:可可西里 更新时间:2023-11-01 04:11:39 24 4
gpt4 key购买 nike

在我的应用程序中,我使用 UIPopoverController 并使用 presentPopoverFromRect API。我现在所做的只是将它设置为我整个 UISegmentedControl 的框架。但是我想比这更精确。有什么方法可以获取 UISegmentedControl 中特定索引的框架吗?

谢谢!

最佳答案

对于我们的项目,我们需要每个片段的实际帧,帧划分是不够的。这是我编写的一个函数,它计算每个片段的确切帧。请注意,它会访问分段控件的实际 subview ,因此它可能会在任何 iOS 更新中中断。

- (CGRect)segmentFrameForIndex:(NSInteger)index inSegmentedControl:(UISegmentedControl *)control
{
// WARNING: This function gets frame from UISegment objects, undocumented subviews of UISegmentedControl.
// May break in iOS updates.

NSMutableArray *segments = [NSMutableArray arrayWithCapacity:self.numberOfSegments];
for (UIView *view in control.subviews) {
if ([NSStringFromClass([view class]) isEqualToString:@"UISegment"]) {
[segments addObject:view];
}
}

NSArray *sorted = [segments sortedArrayUsingComparator:^NSComparisonResult(UIView *a, UIView *b) {
if (a.frame.origin.x < b.frame.origin.x) {
return NSOrderedAscending;
} else if (a.frame.origin.x > b.frame.origin.x) {
return NSOrderedDescending;
}
return NSOrderedSame;
}];

return [[sorted objectAtIndex:index] frame];
}

关于ios - 从某些 UISegmentedControl 索引获取帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9764804/

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