【问题标题】:Image in UISegmentedControl is blue?UISegmentedControl 中的图像是蓝色的?
【发布时间】:2015-03-28 09:00:05
【问题描述】:

我想在 UISegmentedControl 项中放一张图片,但我的图片是蓝色的,不能正常显示? 这是我的代码:

NSArray *segments = [[NSArray alloc] initWithObjects:
                         [UIImage imageNamed:@"iphone1.png"],
                         @"iPad",
                         @"iPod",
                         @"iMac", nil];
    self.mySegmentedControl = [[UISegmentedControl alloc] initWithItems:segments];
    CGRect segmentedFrame = self.mySegmentedControl.frame;
    segmentedFrame.size.height = 64.0f;
    segmentedFrame.size.width = 300.0f;
    self.mySegmentedControl.frame = segmentedFrame;
    self.mySegmentedControl.center = self.view.center;
    [self.view addSubview:self.mySegmentedControl]; 

第一段是iphone图片。

【问题讨论】:

    标签: xcode uisegmentedcontrol


    【解决方案1】:

    如果需要在 UISegmentedControl 中给 Item 设置图片

    - (void)setImage:(UIImage *)image forSegmentAtIndex:(NSUInteger)segment
    

    【讨论】:

    • 我在 iOS 开发者库中阅读了这个功能并做了。但它没有用。你能解释更多吗?
    【解决方案2】:

    这是 ios7 的更改。现在UISegmentedControl使用self的tint color来改变图像的色调,所以你必须以原始模式渲染图像。

    UIImage* iPhoneImage = [UIImage imageNamed:@"iphone1.png"];
    if (//Device is iOS7 or higher) {
        iPhoneImage = [iPhoneImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    }
    
    NSArray *segments = [[NSArray alloc] initWithObjects:
                         iPhoneImage,
                         @"iPad",
                         @"iPod",
                         @"iMac", nil];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      • 2011-10-28
      • 2022-12-19
      • 1970-01-01
      • 2014-02-17
      相关资源
      最近更新 更多