如何在iOS 7下制作UISwitch而不采用背后视图的背景颜色?

Dou*_*ith 22 objective-c uiview uiswitch ios ios7

每当关闭时看起来像这样:

在此输入图像描述

虽然我更喜欢灰色背景.我真的必须使用UIImageView吗?

小智 53

这是我改变iOS7 UISwitch填充颜色的方法.

首先,您需要导入QuartzCore.

#import <QuartzCore/QuartzCore.h>
Run Code Online (Sandbox Code Playgroud)

然后设置背景颜色并绕过UISwitch的角.

UISwitch *mySwitch = [[UISwitch alloc] initWithFrame:CGRectMake(0.0, 0.0, 51.0, 31.0)];
mySwitch.backgroundColor = [UIColor redColor];
mySwitch.layer.cornerRadius = 16.0; // you must import QuartzCore to do this.
[self addSubview:mySwitch];
Run Code Online (Sandbox Code Playgroud)

这将为您提供具有自定义关闭(背景)颜色的UISwitch.

希望这有助于某人:)

  • 他们将改变开关形状的那一天我将不得不使用新的SDK重新编译应用程序,然后我将更改它. (6认同)
  • 他们改变开关形状的那一天,你的解决方案看起来不会很好. (4认同)

Ant*_* R. 17

您可以将您的setOnTintColor属性设置为您UISwitch想要的颜色.

  • 对我来说,此设置指的是开关打开时.例如:[usePatternsSwitch setOnTintColor:[UIColor lightGrayColor]]; (4认同)
  • 投反对票,因为这根本不能回答问题。问题是指关闭状态。 (2认同)

Ste*_*ald 5

您也可以在Interface Builder中为交换机设置此项.只需将背景颜色设置为UISwitch您想要的任何颜色(白色,在下面的示例中),然后设置用户定义的运行时属性layer.cornerRadius = 16:

在此输入图像描述