有人知道如何使UISegmentedControl透明吗?我设置ViewController的背景主题和文本颜色。我目前在ViewDidLoad中使用此代码:

segGame.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.4];


有什么方法可以通过编程方式或在xib中设置segmentedControl吗?

最佳答案

您必须制作自定义细分控制器。

在您的ViewDidLoad方法中编写此代码。没问题

请试试这个:

// Set set segmentControl background to transparent

CGRect rect = CGRectMake(0, 0, 1, 1);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [[UIColor clearColor] CGColor]);
CGContextFillRect(context, rect);
UIImage *transparentImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

[segmentControl setBackgroundImage:transparentImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[segmentControl setDividerImage:transparentImage forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];


如果您为此使用图片,那么它看起来比背景透明度更好

  [segmentControl setDividerImage:[UIImage new] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
  [segmentControl setBackgroundImage:[UIImage new] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];


试试这个。

10-05 21:24