正确的自定义图像uiswitch?(Customize uiswitch image properl

2019-09-02 06:26发布

我有一个UISwitch我在iOS 6中的应用程序,这是开启和关闭图像定制。

self.testSwitch.onImage = [UIImage imageNamed:@"on"]; 
self.testSwitch.offImage = [UIImage imageNamed:@"off"];

我用77点宽和22点高图像用于该目的(154x44在视网膜),因为它是文档中所述。 但我的形象不适合我uiswitch,似乎丑陋,默认的样式隐藏我的一个,就像附加的图像上。

我应该怎么设置,使其以适当的方式工作?

Answer 1:

苹果没有为外观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 。



Answer 2:

这是从我的书的代码 。 这不正是你想要做什么,但它显示的技术,将让你开始! 请注意,我使用的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;

是这样的:



文章来源: Customize uiswitch image properly?