如何创建自定义 UISlider

Posted

技术标签:

【中文标题】如何创建自定义 UISlider【英文标题】:How to create a custom UISlider 【发布时间】:2016-09-06 14:48:17 【问题描述】:

嗨,我如何创建自定义 UISlider,如下图所示。

我用谷歌搜索了很多仍然无法找到一种方法来做到这一点。任何人都可以建议我如何实现这一目标。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

自定义 UISlider

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController :UIViewController



@property (strong, nonatomic) IBOutlet UILabel *LineLbl;
@property (strong, nonatomic) IBOutlet UIScrollView *scrollviewObj;

@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()




@end

@implementation ViewController
@synthesize LineLbl;
@synthesize scrollviewObj;


- (void)viewDidLoad 

   [super viewDidLoad];

   UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(10,LineLbl.frame.origin.y + LineLbl.frame.size.height +20, self.view.frame.size.width -20, 20)];
   slider.maximumValue = 1;
   slider.value = 0.6;
   [slider setMinimumTrackTintColor:[UIColor clearColor]];
   [slider setMaximumTrackTintColor:[UIColor clearColor]];
   [slider setThumbImage:[UIImage imageNamed:@"sliderImg"] forState:UIControlStateNormal];

   CAGradientLayer *red_gradient =[CAGradientLayer layer];

   UIColor *startColor=[UIColor yellowColor];
   UIColor *midColor=[UIColor colorWithRed:(155/255.f) green:(250/255.f) blue:(90/255.f) alpha:1];
   UIColor *endColor= [UIColor colorWithRed:(96/255.f) green:(255/255.f) blue:(59/255.f) alpha:1];

   red_gradient.frame = slider.bounds;
   red_gradient.colors = [NSArray arrayWithObjects:(id)[startColor CGColor], (id)[midColor CGColor],(id)[endColor CGColor], nil];

   [red_gradient setStartPoint:CGPointMake(0.0, 0.5)];
   [red_gradient setEndPoint:CGPointMake(1.0, 0.5)];

   [slider.layer insertSublayer:red_gradient atIndex:2];

   [scrollviewObj addSubview: slider];

我关注了this。

【讨论】:

以上是关于如何创建自定义 UISlider的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UISlider 从自定义类文件中移动到某个位置

自定义 UISlider 不会结束

iOS - 如何以编程方式为控件设置自定义类

如何自定义 UISlider 以使步骤可见

iPhone 的自定义 UISlider

自定义 UISlider - 增加“热点”大小