我是iOS开发的新手,并且很难使用UISlider
。我已将UISlider
添加到与.xib
文件相关联的.h
,并且可以查看.m
文件中的操作方法,但是当我尝试设置最小值和最大值时在UISlider属性的.xib
文件中,XCode崩溃。我认为这与在- (IBAction)slider:(id)sender
文件中的.m
方法中创建值有关,但我做错了,因为我尝试的一切都会导致XCode崩溃。
答案 0 :(得分:7)
CGRect frame = CGRectMake(0.0, 0.0, 200.0, 10.0);
// sliderAction will respond to the updated slider value
UISlider *slider = [[UISlider alloc] initWithFrame:frame];
[slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
//设置滑块的最小值和最大值
slider.minimumValue = 0.0;
slider.maximumValue = 10.0;
slider.continuous = YES;
// Initial value
slider.value = 25.0;
//添加要查看的滑块
[self.view addSubview:slider];
- (IBAction)sliderAction:(id)sender{
UISlider *MYslider = (UISlider *)sender;
int SliderValue = (int)roundf(MYslider.value);
uilable *sliderLabel.text = [NSString stringWithFormat:@"%d", SliderValue];
}
答案 1 :(得分:2)
试试这段代码......
@interface SliderDemoViewController : UIViewController {
UILabel *sliderLabel;
}
@end
将以下代码放在“SliderDemoViewController.m”文件中。
@implementation SliderDemoViewController
@synthesize sliderLabel;
- (void)dealloc {
[sliderLabel release];
[super dealloc];
}
-(IBAction) sliderChanged:(id) sender{
UISlider *slider = (UISlider *) sender;
int progressAsInt =(int)(slider.value + 0.5f);
NSString *newText =[[NSString alloc]
initWithFormat:@"%d",progressAsInt];
self.sliderLabel.text = newText;
[newText release];
}
@end
并且还可以从此下面的链接中查看有关UISlider的更多信息..
http://www.xprogress.com/post-35-uislider-tutorial-example-how-to-use-slider-in-iphone-sdk-xcode/
我希望这可以帮到你..
:)
答案 2 :(得分:1)
确保你的滑块连接到动作方法..并且假设标签有一个名称为sliderLabel的插座...滑块调用的动作方法,因为它的值被更改可以实现为:
- (IBAction)slider:(id)sender{
UISlider *slider = (UISlider *)sender;
int progressAsInt = (int)roundf(slider.value);
sliderLabel.text = [NSString stringWithFormat:@"%d", progressAsInt];
}
这里的值四舍五入仅显示整数值。我假设sider不是在0-1但范围更大的范围内实现..你已经提到你在nib中实现了滑块..最小值和最大值可以在属性检查器中为滑块设置..如果以编程方式进行,它会略有不同..
答案 3 :(得分:0)
Swift 4:
初始化:
override func viewDidLoad() {
super.viewDidLoad()
let slider = UISlider()
slider.frame = CGRect(x: 0, y: 0, width: 250, height: 35)
slider.center = self.view.center
slider.minimumTrackTintColor = .green
slider.maximumTrackTintColor = .red
slider.thumbTintColor = .black
slider.maximumValue = 100
slider.minimumValue = 0
slider.setValue(50, animated: false)
slider.addTarget(self, action: #selector(ViewController.changeVlaue(_:)), for: .valueChanged)
self.view.addSubview(slider)
}
处理程序
@objc func changeVlaue(_ sender: UISlider) {
print("value is" , Int(sender.value));
}