【问题标题】:Customizing a slider control自定义滑块控件
【发布时间】:2011-05-03 05:44:09
【问题描述】:

我想自定义滑块控件但找不到任何可以应用的东西,我要制作的滑块应该如下图所示。请任何人建议我如何做到这一点....

.

【问题讨论】:

    标签: iphone objective-c ios4 uislider


    【解决方案1】:

    试试这个代码..

    CGRect frame = CGRectMake(174, 12.0, 120.0, 40);
    customSlider = [[UISlider alloc] initWithFrame:frame];
    [customSlider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
    // in case the parent view draws with a custom color or gradient, use a transparent color
    customSlider.backgroundColor = [UIColor clearColor];    
    UIImage *stetchLeftTrack = [[UIImage imageNamed:@"orangeslide.png"]
                                stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
    UIImage *stetchRightTrack = [[UIImage imageNamed:@"yellowslide.png"]
                                 stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
    [customSlider setThumbImage: [UIImage imageNamed:@"slider_ball.png"] forState:UIControlStateNormal];
    [customSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
    [customSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
    customSlider.minimumValue = 0.0;
    customSlider.maximumValue = 100.0;
    customSlider.continuous = YES;
    customSlider.value = 50.0;
    
    // Add an accessibility label that describes the slider.
    [customSlider setAccessibilityLabel:NSLocalizedString(@"CustomSlider", @"")];
    [self.view addSubview:customSlider];
    customSlider.tag = 1;
    

    【讨论】:

    • 这是一篇好文章,但它不符合我的要求朋友。我不想更改滑块的 minimumTrackImage 和 maximumTrackImage 但这些需要稳定并且应该看起来像中的图像问题..请告诉我与此相关的任何事情!
    • 没有它的复制和粘贴来自苹果示例代码,而不是来自您提供的链接
    • 正如我所说的那样,这是一篇好帖子,我感谢你的朋友所做的努力。无论是从任何地方复制和粘贴都没有关系,但我找到了解决问题的方法。这不是我需要的确切答案,但它给了我一些寻找解决方案的想法。我对这段代码做了一些修改,我解决了我的问题....谢谢阿曼!!
    • 亲爱的,Sudhanshu,如果您找到了您的问题的确切解决方案,而不是在这里发布,那么其他人也可以知道。也包括我..我也在寻找相同的..
    【解决方案2】:

    试试这个

    CGRect frame = *youe required frame*;
    UISlider * customSlider = [[UISlider alloc] initWithFrame:frame];
    
    // in case the parent view draws with a custom color or gradient, use a transparent color
    customSlider.backgroundColor = [UIColor clearColor];    
    UIImage *stetchLeftTrack = [[UIImage imageNamed:@"orangeslide.png"]
                                            stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
    UIImage *stetchRightTrack = [[UIImage imageNamed:@"yellowslide.png"]
                                             stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
    [customSlider setThumbImage: [UIImage imageNamed:@"slider_ball.png"] forState:UIControlStateNormal];
    [customSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
    [customSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
    customSlider.minimumValue = 0.0;
    customSlider.maximumValue = 100.0;
    customSlider.continuous = YES;
    customSlider.value = 50.0;
    [customSlider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubView:customSlider];
    [customSlider release];
    

    结果如下:-

    根据您的要求添加图像此代码导致此滑块

    【讨论】:

    • @iphone monster 这是 UICatalog 示例应用程序中使用的代码。首先我想给你一个链接,但我只给你相关的代码。Aman 也可能会这样想,但无论如何你得到了解决方案。:)
    • 朋友问题还没有解决 :( ,我不想改变滑块的 minimumTrackImage 和 maximumTrackImage ,这些图像不应该在那里,但滑块看起来像有问题的图片所示。 .请告诉我是否有其他解决方案!:(
    • @SudhanshuSrivastava 如果您不更改图像,您将如何获得红绿色滑块轨道。我引用 APPLE -“滑块控件使用两个不同的图像绘制轨道,这些图像是可定制的”
    • 感谢您的精彩全文,如果您想使用自定义控件,它真的很有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多