Objective-C Learning Notes - UISlider

base attributes:

  • minimumValue;

  • maximumValue;

  • UIImage.


动态实现:

#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize myLabel;
- (void)viewDidLoad {
    [super viewDidLoad];
    //myLabel来源于. h 文件
    myLabel = [[UILabel alloc]init];
    //frame 赋值
    myLabel.frame = self.view.bounds;
    //
    myLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
    //初始值
    myLabel.text = @"50.0";
    //字体
    myLabel.font = [UIFont boldSystemFontOfSize:36];
    //对齐方式
    myLabel.textAlignment = NSTextAlignmentCenter;
    //添加到 view 中
    [self.view addSubview:myLabel];
    //创建 UISlider 实例
    UISlider *mySlider = [[UISlider alloc]init];
    //frame 赋值
    mySlider.frame = CGRectMake(0, 0, 250, 50);
    //最小值
    mySlider.minimumValue = 0.0;
    //最大值
    mySlider.maximumValue = 100.0;
    //初始值
    mySlider.value = 50.0;
    //中心对齐?
    mySlider.center = self.view.center;
    //触发
    [mySlider addTarget:self action:@selector(sliderDidChange:) forControlEvents:UIControlEventValueChanged];
    //添加到 view
    [self.view addSubview:mySlider];
    
    
    // Do any additional setup after loading the view, typically from a nib.
}
- (void) sliderDidChange: (id)sender{
    if ([sender isKindOfClass:[UISlider class]]){
        UISlider *slider = sender;
        myLabel.text = [NSString stringWithFormat:@"%.2f",slider.value];
    }
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
@end


#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
//就是那个 myLabel 罗,因为有个函数也调用了这个变量所以就写出来了
@property (strong, nonatomic) IBOutlet UILabel *myLabel;
@end


使用 UISlider 动态调整字体大小:

#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize mylabel;
- (void)viewDidLoad {
    [super viewDidLoad];
    
    mylabel = [[UILabel alloc]init];
    
    mylabel.frame  = self.view.bounds;
    
    mylabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    
    mylabel.text = @"Title!";
    
    mylabel.font = [UIFont boldSystemFontOfSize:48];
    
    mylabel.textAlignment = NSTextAlignmentCenter;
    
    [self.view addSubview:mylabel];
    
    UISlider *mySlider = [[UISlider alloc]init];
    
    mySlider.frame = CGRectMake(0, 0, 250, 50);
    
    mySlider.minimumValue = 0.0;
    
    mySlider.maximumValue = 1.0;
    
    mySlider.value = 0.5;
    
    mySlider.center = self.view.center;
    
    //载入 UISlider 左右侧的图片
    UIImage *image1 = [UIImage imageNamed:@"+.png"];
    UIImage *image2 = [UIImage imageNamed:@"-.png"];
    
    //赋值到 UISlider 实例
    mySlider.minimumValueImage = image2;
    mySlider.maximumValueImage = image1;
    
    [self.view addSubview:mySlider];
    
    //设置slider 数值变动时触发的函数
    [mySlider addTarget:self action:@selector(sliderDidChange:) forControlEvents:UIControlEventValueChanged];
    
    
    // Do any additional setup after loading the view, typically from a nib.
}
//slider value 变化时触发的函数
- (void) sliderDidChange:(id)sender{
    if ([sender isKindOfClass:[UISlider class]]){
        UISlider *slider = sender;
        mylabel.font = [UIFont boldSystemFontOfSize:96*slider.value];
    }
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
@end



#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
//又是一个 UILabel 罗...
@property (strong,nonatomic) UILabel *mylabel;
@end


调用 UICircularSlider:

#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize mySlider,myCircularSlider,myProgress;
- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self.myCircularSlider addTarget:self action:@selector(updateProgress:) forControlEvents:UIControlEventValueChanged];
    [self.myCircularSlider setMinimumValue:self.mySlider.minimumValue];
    [self.myCircularSlider setMinimumValue:self.mySlider.maximumValue];
    
    // Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
- (IBAction)updateProgress:(UISlider *)sender {
    float progress = translateValueFromSourceIntervalToDestinationInterval(sender.value, sender.minimumValue, sender.maximumValue, 0.0, 10);
    
    [self.myProgress setProgress:progress];
    [self.myCircularSlider setValue:progress];
    [self.mySlider setValue:progress];
    
}
@end

不知道哪里出了问题,报错耶,不管先23333

标签:ios, object-c, uislider