我的客户不喜欢iOS 5 UISwitch的光泽,并希望我使用某些图像创建非光面版本。不过我不知道我会怎么做这个。重新创建UISwitch
我创建了一个UIView子类,我不知道接下来要做什么。
关于接下来我需要做什么的任何建议?
我的客户不喜欢iOS 5 UISwitch的光泽,并希望我使用某些图像创建非光面版本。不过我不知道我会怎么做这个。重新创建UISwitch
我创建了一个UIView子类,我不知道接下来要做什么。
关于接下来我需要做什么的任何建议?
您可以使用CoreGraphics(不使用图像)重新创建UISwitch
。
看一看这样的:DCRoundSwitch
DCRoundSwitch被设计成在替代UISwitch
下降。
无论如何,你应该创建一个UIControl
子类!
有很多方法可以做你想做的。一种方法是使用UIImageView,并在用户点击控件时切换图像。
喜欢的东西:
-(void) loadView
{
[super loadView];
UIImageView *image1 = [UIImage imageNamed:@"image1-from-client"];
UIImageView *imageView = [[[UIImageView alloc] initWithImage:image1] autorelease];
imageView.userInteractionEnabled = YES;
[self.view addSubview:imageView];
// detect the tap
UITapGestureRecognizer *tapRecognizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)] autorelease];
[imageView addGestureRecognizer:tapRecognizer];
}
// this gets called when the user taps
-(void) tap:(UIGestureRecognizer*)gesture
{
UIImageView *viewTapped = (UIImageView*)gesture.view;
if (viewTapped.tag == 0)
{
viewTapped.tag = 1;
viewTapped.image = [UIImage imageNamed:@"image2-from-client"];
}
else
{
viewTapped.tag = 0;
viewTapped.image = [UIImage imageNamed:@"image1-from-client"];
}
}
您可以通过继承UIControl
重新创建一个自定义UISwitch
。然后你可以使用普通的UIViews创建你想要的几乎任何效果。你可以看看SevenSwitch
。我创建的自定义UISwitch
替代品。它是无光泽的,颜色可以根据您的喜好进行定制。
DCRoundSwitch是好的,我在一个项目中使用它,但我认为这并不完全是一个简易替换UISwitch的 - 缺少任何一种InterfaceBuilder的整合。 –