我的iOS 6应用程序中有一个UISwitch,可以自定义图像的开启和关闭。
self.testSwitch.onImage = [UIImage imageNamed:@"on"];
self.testSwitch.offImage = [UIImage imageNamed:@"off"];
我为此目的使用77点宽和22点高的图像(视网膜中154x44),正如文档中所述。但是我的图像不适合我的uiswitch,它似乎很难看,默认样式隐藏了我的图像,就像附加图像一样。
我应该设置什么才能让它以正确的方式运作?
答案 0 :(得分:6)
这是code from my book。这不是你想要做的,但它显示了这项技术,并将帮助你入门!请注意,我使用的是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;
看起来像这样:
答案 1 :(得分:2)
Apple没有UISwitch
的外观API。您可以设置色调颜色属性(onTintColor
)。但我想这不是你想要的。关于自定义UISwitch的问题在于Apple有机会拒绝您的应用。
但是有一些自定义开关的API,例如RCSwitch
(https://github.com/robertchin/rcswitch)或TTSwitch
。有关如何使用RCSwitch
的好教程和示例,请访问:http://www.raywenderlich.com/23424/photoshop-for-developers-creating-a-custom-uiswitch。