4

iOS 6 アプリに UISwitch があり、オンとオフのイメージがカスタマイズされています。

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

ドキュメントに記載されているように、この目的のために幅 77 ポイント、高さ 22 ポイントの画像 (網膜では 154x44) を使用します。しかし、私の画像は私の uiswitch に適合しません。醜いようです。添付の​​画像のように、デフォルトのスタイルは私のものを隠します。

ここに画像の説明を入力

適切に動作させるには何を設定すればよいですか?

4

2 に答える 2

6

これが私の本からのコードです。これはまさにあなたがやりたいことではありませんが、テクニックを示しており、始めることができます! 79 x 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;

次のようになります。

ここに画像の説明を入力

于 2013-05-08T17:35:15.030 に答える