首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IOS 6 UISegmentedControl

IOS 6 UISegmentedControl
EN

Stack Overflow用户
提问于 2012-09-24 22:01:59
回答 1查看 1.8K关注 0票数 0

我使用以下代码创建一个UISegment:

代码语言:javascript
复制
//segment controll

            NSString *key2 = [allKeys2 objectAtIndex:i];

            NSString *obj2 = [DictionaryHomework objectForKey:key2];

            int val;
            val = [obj2 intValue];

            //segment controll

            NSArray *itemArray2 = [NSArray arrayWithObjects: @"very easy", @"easy", @"ok", @"hard", @"challenging", nil];
            UISegmentedControl *segmentedControl2 = [[UISegmentedControl alloc] initWithItems:itemArray2];
            segmentedControl2.frame = CGRectMake(480, -60, 130, 350);
            segmentedControl2.segmentedControlStyle = UISegmentedControlStyleBar;
            segmentedControl2.selectedSegmentIndex = val - 1;
            [segmentedControl2 addTarget:self action:@selector(segmentedControlHomework:) forControlEvents:UIControlEventValueChanged];

            segmentedControl2.transform =
            CGAffineTransformRotate(segmentedControl2.transform, degreesToRadians(90));

            NSArray *arr = [segmentedControl2 subviews];
            for (int i = 0; i < [arr count]; i++) {
                UIView *v = (UIView*) [arr objectAtIndex:i];
                NSArray *subarr = [v subviews];
                for (int j = 0; j < [subarr count]; j++) {
                    if ([[subarr objectAtIndex:j] isKindOfClass:[UILabel class]]) {
                        UILabel *l = (UILabel*) [subarr objectAtIndex:j];
                        l.transform = CGAffineTransformMakeRotation(- M_PI / 2.0); //do the reverse of what Ben did
                    }
                }
            }

            [image1 addSubview:segmentedControl2];

            segmentedControl2.tag = i;

            [segmentArray addObject: segmentedControl2];

            //segment control

在ios5上,该控件以水平方式加载标题,而在ios6中,该控件以垂直方式加载标题。为什么会这样呢?iOS6有变化吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-24 22:07:47

您正在摆弄UISegmentedControl的内部机制。虽然从技术上讲,您没有使用私有API,但您仍然在访问未公开记录的UIKit部分。

在iOS 6中行为可能改变的一个原因可能是分段控件现在在layoutSubviews或其他地方懒惰地构建它的子视图。它甚至可能根本不使用子视图。但我在这里只是猜测而已。然而,这是苹果的选择,以改变未记录的框架内部。

你的代码永远不应该用在送货应用程序中。如果你想做这样的事情(垂直分段?)内置分段控件做不到的事情,你可以自己构建它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12566637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档