我做了custom UISwitch (from this post)。但是问题是,我的自定义文本有点长。有什么方法可以调整开关的大小? [我尝试了setBounds,没有用]

编辑:

这是我使用的代码:

@interface CustomUISwitch : UISwitch
- (void) setLeftLabelText: (NSString *) labelText;
- (void) setRightLabelText: (NSString *) labelText;
@end

@implementation CustomUISwitch

- (UIView *) slider
{
    return [[self subviews] lastObject];
}
- (UIView *) textHolder
{
    return [[[self slider] subviews] objectAtIndex:2];
}
- (UILabel *) leftLabel
{
    return [[[self textHolder] subviews] objectAtIndex:0];
}
- (UILabel *) rightLabel
{
    return [[[self textHolder] subviews] objectAtIndex:1];
}
- (void) setLeftLabelText: (NSString *) labelText
{
    [[self leftLabel] setText:labelText];
}
- (void) setRightLabelText: (NSString *) labelText
{
    [[self rightLabel] setText:labelText];
}
@end

mySwitch = [[CustomUISwitch alloc] initWithFrame:CGRectZero];

//Tried these, but did not work
//CGRect aFrame = mySwitch.frame;
//aFrame.size.width = 200;
//aFrame.size.height = 100;
//mySwitch.frame = aFrame;

[mySwitch setLeftLabelText: @"longValue1"];
[mySwitch setRightLabelText: @"longValue2"];

最佳答案

最简单的方法是将其调整为 View :

 UISwitch *mySwitch = [[UISwitch alloc] init];
 mySwitch.transform = CGAffineTransformMakeScale(0.75, 0.75);

而且您不必担心其他任何事情!

09-12 15:55