将自定义开关添加到iphone视图

时间:2012-07-10 03:48:46

标签: iphone user-interface custom-controls

我使用以下代码创建自定义开关:

UISegmentedControl* switchView=[[UISegmentedControl alloc] 
                                initWithItems:[[NSMutableArray alloc] initWithObjects:@"On",@"Off",nil]];
[switchView setFrame:CGRectMake(20,365,140,28)];
switchView.selectedSegmentIndex=0;
switchView.segmentedControlStyle=UISegmentedControlStyleBar;
[switchView setImage:[UIImage imageNamed:@"onSelected.png"] forSegmentAtIndex:0];
[switchView setImage:[UIImage imageNamed:@"off.png"] forSegmentAtIndex:1];
[switchView addTarget:self action:@selector(checkOnOffState:) forControlEvents:UIControlEventValueChanged];

我现在想把这个控件添加到我的一个屏幕上(我相信正确的术语是ViewController?)。我将如何在Xcode 4.3中执行此操作?

我查看了其他一些帖子,但却找不到任何可行的内容。例如,How do I add a custom view to iPhone app's UI?提出了类似于 [[myVC view] addSubview:myView];的内容。 并How to customize UISwitch button in iphone?建议 self.navigationItem.titleView=switchView; 如果可能的话,你能解释为什么这些方法不起作用吗?感谢。

2 个答案:

答案 0 :(得分:1)

您需要为您的UISegmentControl的子类创建一个类, 否则,您也可以直接在vc中添加此代码。

在其initWithFrame方法中添加此代码

然后在VC中使用它

-(void)viewDidLoad{
  urCustomSwitch  = [urCustomSwitch alloc] initWithFrame:CGRectMake(20,365,140,28)];
  [self.view addSubview:urCustomSwitch];
}

如果要创建自定义可重用类,这将满足您的目的。

答案 1 :(得分:0)

如果您在UISegmentedControl(。xib文件)中添加此切换控件即InterfaceBuilder

这项任务对你来说会容易得多。