默认情况下,当我观察UISlider的值时,它只会更新一次,当单击滑块时,不会连续,甚至认为是滑块的设置.有没有办法让滑块连续值变化?
我初始化了一个jQuery滑块,然后动态设置min max值,这取决于json-request的内容.步骤av甚至100,min a max被重新计算到甚至100,大多数情况下在300到4800之间.
滑块值和设置都很好,但是当我移动手柄时,我无法一直到达末端,它会从最小/最大值停止几步.这是为什么?
我尝试了各种各样的东西,没有任何作用.我最终在最高值处加上200并在较低值中减去200并进行补偿,但这是一个黑客而不是解决方案.
我担心我在这里遗漏了一些明显的东西,但我无法在任何地方找到答案,我也无法自己解决,所以我会问这里.
是否有可能使UISlider略小于默认值,就像在iPhone上的"iPod"应用程序中看到的那样?Interface Builder的高度似乎被冻结在23点.
它是如何在iPod应用程序上完成的?它使用自定义图像吗?
我有一个定制的UISlider,它的轨迹图像有时会消失.它随机发生,当它的父视图控制器被推到可见时(我从未看到它实际上消失).
这是我设置UISlider的代码:
timeSlider = [[UISlider alloc] initWithFrame:CGRectMake(55, 8, 210, 23)];
timeSlider.backgroundColor = [UIColor clearColor];
UIImage *blutrackImg = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"bluetrack" ofType:@"png"]];
UIImage *whitetrackImg = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"whitetrack" ofType:@"png"]];
//UIEdgeInsetsMake(top,left,bottom,right)
UIImage *stetchLeftTrack = [blutrackImg stretchableImageWithLeftCapWidth:9.0 topCapHeight:0.0];
UIImage *stetchRightTrack = [whitetrackImg stretchableImageWithLeftCapWidth:9.0 topCapHeight:0.0];
[timeSlider setThumbImage: [UIImage imageNamed:@"whiteslide2.png"] forState:UIControlStateNormal];
[timeSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
[timeSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
timeSlider.continuous = NO;
[timeSlider addTarget:self action:@selector(trackTime:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:timeSlider];
Run Code Online (Sandbox Code Playgroud)
我在iOS 5.0上构建.有没有人碰到这样的事情?
我在同一个视图中有两个UISliders.我的要求是,当用户改变第一个滑块的值时,第二个滑块值应该根据它改变.所以,在第二个滑块中我想看不见它的拇指.虽然我已经清楚了它的拇指颜色,用户可以看到.我该如何解决?
当我使用slipInput函数闪亮时,似乎我无法控制滑块的宽度/长度.默认情况下,滑块占据页面的整个宽度(在basicPage模式下,而不是在pageWithSidebar模式下).我想知道是否有某种方法来控制滑块的宽度.谢谢你的任何建议.
UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(50, 50, 100, 40)];
[self.view addSubview:slider];
Run Code Online (Sandbox Code Playgroud)
问题是,我根本无法查看UISlider,但我仍然可以拖动它.我必须猜测位置并拖动.
编译环境基于ios 6 sdk(强制,因为我的应用程序还没有使用平板)有人知道如何解决这个问题吗?非常感谢你.
我想知道最好的方法:
我已经将标记添加为UIViews.例:
let tick = UIView(frame: CGRect(x: xPos, y: (slider.frame.size.height - 10) / 2, width: 2, height: 10))
tick.backgroundColor = UIColor.init(white: 0.7, alpha: 1)
tick.layer.shadowColor = UIColor.white.cgColor
tick.layer.shadowOffset = CGSize(width: 0.0, height: 1.0)
tick.layer.shadowOpacity = 1.0
tick.layer.shadowRadius = 0.0
tick.tag = i
slider.insertSubview(tick, belowSubview: slider)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,添加了7个滴答.控制这些子视图的颜色.我使用了标签,并且在滑块的值更改中,使用if-else语句,我将颜色更改为minimumTrackTintColor或maximumTrackTintColor(绿色或灰色).例:
if sender.value == 0 {
slider.viewWithTag(1)?.backgroundColor = slider.maximumTrackTintColor
}else if sender.value <= 5{
slider.viewWithTag(1)?.backgroundColor = slider.minimumTrackTintColor
Run Code Online (Sandbox Code Playgroud)
我真的不喜欢这样做...有更好的方法吗?
使用时我有一个奇怪的问题 monospacedDigitSystemFont(ofSize:weight:)
我有一个UISlider和一个UILabel在我的UIViewController.Label显示滑块的当前值+一些描述文本.更改滑块的值时,文本左右myLabel摇晃一下.myLabel因为我正在使用,我希望它的文字不会左右摇晃monospacedDigitSystemFont(ofSize:weight:).
这是我的代码:
import UIKit
class ExampleViewController: UIViewController {
@IBOutlet weak var myLabel: UILabel!
@IBOutlet weak var mySlider: UISlider!
override func viewDidLoad() {
super.viewDidLoad()
myLabel.font = UIFont.monospacedDigitSystemFont(ofSize: 15, weight: .bold)
}
@IBAction func sliderChanged(_ sender: UISlider) {
myLabel.text = String(format: "%.5f is the actual Value of the Slider", sender.value)
}
}
Run Code Online (Sandbox Code Playgroud)
关于摇晃的GIF:
有什么建议?我错过了什么吗?
我想要UISlider与minimumTrackTintColor和minimumTrackTintColor与轨道 borderColor
我已经trackTintColor为minimum和maximum状态都设置了,但是我想为轨道添加边框UISlider
UISlider样子是这样的:
class SliderWithHeart: UISlider
{
override func awakeFromNib()
{
super.awakeFromNib()
let imageTint = UIImage(named: "SliderHeart")
self.minimumTrackTintColor = colorWithHex(hex: COLORCODE.APP_BUTTON_COLOR)
self.maximumTrackTintColor = colorWithHex(hex: COLORCODE.APP_ORANGE_COLOR)
self.setThumbImage(imageTint, for: .normal)
}
override func layoutSubviews()
{
super.layoutSubviews()
super.layer.cornerRadius = self.frame.height/2
}
override func trackRect(forBounds bounds: CGRect) -> CGRect
{
var newBounds = super.trackRect(forBounds: bounds)
newBounds.size.height = 10
return newBounds
}
} …Run Code Online (Sandbox Code Playgroud)