Ios 是否正确自定义uiswitch图像?
我的iOS 6应用程序中有一个UISwitch,它的开关图像是定制的Ios 是否正确自定义uiswitch图像?,ios,xcode,customization,uiswitch,Ios,Xcode,Customization,Uiswitch,我的iOS 6应用程序中有一个UISwitch,它的开关图像是定制的 self.testSwitch.onImage = [UIImage imageNamed:@"on"]; self.testSwitch.offImage = [UIImage imageNamed:@"off"]; 正如文档中所述,我使用了77点宽和22点高的图像(视网膜中为154x44)。但是我的图像不适合我的uiswitch,它看起来很难看,默认样式隐藏了我的图像,就像附加的图像一样 我应该设置什么使它以正确的方
self.testSwitch.onImage = [UIImage imageNamed:@"on"];
self.testSwitch.offImage = [UIImage imageNamed:@"off"];
正如文档中所述,我使用了77点宽和22点高的图像(视网膜中为154x44)。但是我的图像不适合我的uiswitch,它看起来很难看,默认样式隐藏了我的图像,就像附加的图像一样
我应该设置什么使它以正确的方式工作?以下是。这并不完全是你想要做的,但它展示了技术,并将让你开始!请注意,我使用的是79乘27(不确定您的号码来自何处):
看起来像这样:
苹果没有用于
UISwitch
的外观API。您可以设置着色颜色属性(onTintColor
)。但我想那不是你想要的。定制UISwitch的问题在于,苹果有可能会拒绝你的应用
但是有一些用于自定义交换机的API,例如
RCSwitch
()或TTSwitch
。有关如何使用RCSwitch
的良好教程和示例可在此处找到: 它来自IOS6编程手册,第113页是的,@giuseppe,他们又在iOS7中删除了这个功能!因此,该代码仅适用于iOS 6。这真是令人恼火。是的,这在iOS 7中不起作用,所以不要浪费时间将UISwitch外观更改为其他图像的外观。老实说,这太糟糕了。它是从IOS6来的!对不起,我忘了。但它只适用于iOS 6。使用这些库将使其与旧版本兼容。谢谢,谢谢。不管怎样,我的项目中不需要旧版本,所以看起来您也想更改拇指外观?如果我错了,请纠正我。是的,正如我的书所说,自定义图像中必须包含拇指。请立即尝试以下操作:-
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;