从特定视图返回时,UISlider轨迹图像消失

时间:2014-04-24 16:30:18

标签: ios objective-c uislider

图片1

Image 1


图片2

enter image description here


图片3

enter image description here

  1. 第一张图片是设置屏幕,一切正常 在第一次加载此屏幕时。
  2. 第二张图片是政策 从设置屏幕推出的屏幕。
  3. 从策略屏幕返回到设置屏幕后的第三个图像显示UI滑块现在不显示轨迹图像。行为仍然正常,但赛道刚刚消失。这对我来说是一个非常神秘的错误。如果我进入应用程序中的另一个屏幕然后点击设置它再次正常工作,但是当我从策略屏幕来看时,轨迹图像就消失了。
  4. 我正在使用默认的UISlider。我在不同的屏幕上使用xib文件。

    点击政策按钮后

    EditorialPolicyViewController *policyView;
    if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
    {
        policyView = [[EditorialPolicyViewController alloc]initWithNibName:@"EditorialPolicyViewController_iPad" bundle:nil];
    }
    else
    {
        policyView = [[EditorialPolicyViewController alloc]initWithNibName:@"EditorialPolicyViewController_iPhone" bundle:nil];
    }
    [self.navigationController pushViewController:policyView animated:YES];
    

    ViewDidLoad - 设置uislider

    NSString *textSize = [[NSUserDefaults standardUserDefaults] valueForKey:@"Text Size"];
    float textSizeFloat = [textSize floatValue];
    self.textSizeSlider.value = textSizeFloat;
    
    [self.textSizeSlider setMaximumValue:16.0];
    [self.textSizeSlider setMinimumValue:11.0];
    

    如果您有任何其他问题,请与我们联系。我不知道如何解决这个错误。

    更新 发现下面的代码是“主题”滑块但是当我删除它时,它工作正常。什么方式我可以保持主题颜色而不是让它消失?

       [[UISlider appearance] setThumbTintColor:[UIColor colorWithRed:0/255.0f green:75/255.0f blue:152/255.0f alpha:1.0f]];
       [[UISlider appearance] setMinimumTrackTintColor:[UIColor colorWithRed:164/255.0f green:75.0f blue:25/255.0f alpha:1.0f]];
       [[UISlider appearance] setMaximumTrackTintColor:[UIColor colorWithRed:204/255.0f green:204/255.0f blue:204/255.0f alpha:1.0f]];
    

3 个答案:

答案 0 :(得分:4)

这是SetMaximumTrackTintColor中众所周知的错误。 删除这一行:

[[UISlider appearance] setMaximumTrackTintColor:[UIColor colorWithRed:204/255.0f green:204/255.0f blue:204/255.0f alpha:1.0f]]; 

并且您的应用可以正常使用。

答案 1 :(得分:0)

您可以将外观更改移动到viewDidLoad:函数中。 这样,外观变化只会发生一次。

- (void)viewDidLoad
{
    // Appearance changes here
}

它对我有用

答案 2 :(得分:0)

这是一个已知错误是正确的。但是找到了解决它的方法,这样你仍然可以保持你的主题:

[[UISlider appearance] setMaximumTrackTintColor:[UIColor colorWithRed:204/255.0f green:204/255.0f blue:204/255.0f alpha:1.0f]];

在我使用滑块的UIViewController中,我在viewDidLoad中设置了maximumTrackTintColor:方法

- (void)viewDidLoad
{
    [super viewDidLoad];
    _slider.maximumTrackTintColor = [UISlider appearance].maximumTrackTintColor;
}

这适合我,所以我想分享!