我有一个UISwitch我在iOS 6中的应用程序,这是开启和关闭图像定制。
self.testSwitch.onImage = [UIImage imageNamed:@"on"];
self.testSwitch.offImage = [UIImage imageNamed:@"off"];
我用77点宽和22点高图像用于该目的(154x44在视网膜),因为它是文档中所述。 但我的形象不适合我uiswitch,似乎丑陋,默认的样式隐藏我的一个,就像附加的图像上。
我应该怎么设置,使其以适当的方式工作?
苹果没有为外观API UISwitch
。 您可以设置色调颜色属性( onTintColor
)。 但是,这不是你想要的,我猜。 有关自定义UISwitch的问题是,有苹果会拒绝你的应用程序的机会。
但也有一些API自定义开关,如RCSwitch
( https://github.com/robertchin/rcswitch )或TTSwitch
。 如何使用一个很好的教程和例子RCSwitch
可以在这里找到: http://www.raywenderlich.com/23424/photoshop-for-developers-creating-a-custom-uiswitch 。
这是从我的书的代码 。 这不正是你想要做什么,但它显示的技术,将让你开始! 请注意,我使用的79 27(不知道从何处取得你的号码):
UIGraphicsBeginImageContextWithOptions(CGSizeMake(79,27), NO, 0);
[[UIColor blackColor] setFill];
UIBezierPath* p = [UIBezierPath bezierPathWithRect:CGRectMake(0,0,79,27)];
[p fill];
NSMutableParagraphStyle* para = [NSMutableParagraphStyle new];
para.alignment = NSTextAlignmentCenter;
NSAttributedString* att =
[[NSAttributedString alloc] initWithString:@"YES" attributes:
@{
NSFontAttributeName:[UIFont fontWithName:@"GillSans-Bold" size:16],
NSForegroundColorAttributeName:[UIColor whiteColor],
NSParagraphStyleAttributeName:para
}];
[att drawInRect:CGRectMake(0,5,79,22)];
UIImage* im = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.sw2.onImage = im;
是这样的: