gpt4 book ai didi

ios - 在哪里设置 UISegmentedControl 的按钮大小?

转载 作者:行者123 更新时间:2023-11-28 17:35:21 26 4
gpt4 key购买 nike

我有自己的自定义 UISegmentedControl 子类。它的按钮比标准尺寸大。每个按钮的宽度为 100.0 点。

@implementation SegmentedControlExplore

- (id) init
{
return [super
initWithItems:[NSArray arrayWithObjects:
@"Uno",
@"Dos",
nil
]
];
}

- (void) layoutSubviews
{
for (NSUInteger i = 0; i < self.numberOfSegments; i++) {
[self setWidth:100.0 forSegmentAtIndex:i];
}
[super layoutSubviews];
}

@end

当我尝试在我的 Controller 中使用它时,我无法将它置于我的 UINavigationBar 中。

SegmentedControl* sc = [[[SegmentedControl alloc] init] autorelease];
[self.navigationController.navigationBar addSubview:sc];
sc.center = self.navigationController.navigationBar.center;

它偏向右侧。原因是因为按钮大小设置实际上是在其 center 属性更改后被调用的。那么我应该在哪里移动我的按钮大小设置以便首先完成?我尝试将它移动到 init,但大小没有改变。

最佳答案

用此代码替换您的 layoutSubviews 函数。

- (void) layoutSubviews {

self.frame = CGRectMake(0, 0, self.numberOfSegments*100, 44);
self.center = self.superview.center;

CGRect frame = self.frame;

if (![[UIApplication sharedApplication] isStatusBarHidden]) {
self.frame = CGRectMake(frame.origin.x, frame.origin.y-20, frame.size.width, frame.size.height);
}

for (NSUInteger i = 0; i < self.numberOfSegments; i++) {
[self setWidth:100 forSegmentAtIndex:i];
}

[super layoutSubviews];
}

关于ios - 在哪里设置 UISegmentedControl 的按钮大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9950264/

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