slider我的表格单元格中有,这是我的滑块初始化代码:
UISlider* slider = [[UISlider alloc] init];
slider.continuous = NO;
slider.maximumValue = 2;
slider.minimumValue = 0.5f;
slider.value = 0.5f;
...
//put slider into cell
Run Code Online (Sandbox Code Playgroud)
我无法移动这个滑块的拇指。为什么?请告诉我我做错了什么?
更新:如果将滑块的初始值设置为 0.500001f - 它可以工作!
我担心我在这里遗漏了一些明显的东西,但我无法在任何地方找到答案,我也无法自己解决,所以我会问这里.
是否有可能使UISlider略小于默认值,就像在iPhone上的"iPod"应用程序中看到的那样?Interface Builder的高度似乎被冻结在23点.
它是如何在iPod应用程序上完成的?它使用自定义图像吗?
有谁知道如何设置 a 的起始位置UISlider(最好在中间)以及如何以十为单位而不是以十为单位增加它?
这是我到目前为止所得到的:
// Setup custom slider images
UIImage *minImage = [UIImage imageNamed:@"ins_blueTrack.png"];
UIImage *maxImage = [UIImage imageNamed:@"ins_whiteTrack.png"];
UIImage *tumbImage= [UIImage imageNamed:@"slide.png"];
minImage=[minImage stretchableImageWithLeftCapWidth:6.0 topCapHeight:0.0];
maxImage=[maxImage stretchableImageWithLeftCapWidth:6.0 topCapHeight:0.0];
// Setup the slider
[self.slider setMinimumTrackImage:minImage forState:UIControlStateNormal];
[self.slider setMaximumTrackImage:maxImage forState:UIControlStateNormal];
[self.slider setThumbImage:tumbImage forState:UIControlStateNormal];
self.slider.minimumValue = 10;
self.slider.maximumValue = 180;
self.slider.continuous = YES;
int myVal = self.slider.value;
NSString *timeValue = [[NSString alloc] initWithFormat:@"%1d", myVal];
self.timeLabel.text = timeValue;
// Attach an action to sliding
[self.slider addTarget:self action:@selector(fxSliderAction) forControlEvents:UIControlEventValueChanged];
Run Code Online (Sandbox Code Playgroud) 我正在编写一个 iPhone 应用程序,它使用两个 uislider 来控制使用 coreBluetooth 发送的值。如果我快速移动滑块,一个值会在接收器处冻结,大概是因为 Value Changed 事件触发得太频繁,以至于写入命令堆积起来并最终被丢弃。如何确保事件不会触发太频繁?
编辑:
这是对问题的澄清;蓝牙连接每 105 毫秒发送一次命令。如果用户在这段时间内产生了一堆事件,他们似乎在排队。我想扔掉连接事件之间生成的任何值,每 105 毫秒发送一个。
这基本上就是我现在正在做的事情:
-(IBAction) sliderChanged:(UISlider *)sender{
static int8_t value = 0;
int8_t new_value = (int8_t)sender.value;
if ( new_value > value + threshold || new_value < value - threshold ) {
value = new_value;
[btDevice writeValue:value];
}
}
Run Code Online (Sandbox Code Playgroud)
我要问的是如何实现类似的东西
-(IBAction) sliderChanged:(UISlider *)sender{
static int8_t value = 0;
if (105msHasPassed) {
int8_t new_value = (int8_t)sender.value;
if ( new_value > value + threshold || new_value < value - threshold …Run Code Online (Sandbox Code Playgroud) 我有一个最小值为0且最大值为5(任何值)的滑块,我需要在同一个滑块中显示5种不同的颜色,即0-1一种颜色,1-2种另一种颜色,依此类推.这可能吗 .如有任何想法,请帮助我.
我正在为 tvOS 扩展 iOS 应用程序。
在 iOS 应用程序上,我有很多滑块(两侧滑块用于选择年份范围,例如 1950-2010。或从 0.1 到 10.0 的值)。
我想知道如何在 tvOS 上替换此功能。我最初的想法是覆盖 Siri 遥控器的音量按钮并更改值,但我不认为这Apple会允许这样做。
有什么建议吗?
我正在使用 AvPlayer 并尝试设置一个滑块以允许清理音频文件。我有一个问题,当它被选中时,滑块会跳到整个地方。然后它会回到原点位置一秒钟,然后再回到它被拖动到的位置。
你在 Gif 上看不到我的光标,但是平滑拉长的拖拽是我移动旋钮,然后快速鞭子是滑块行为不端。
我花了几个小时在谷歌上搜索和梳理 Stack Overflow,但无法弄清楚我在这里做错了什么,很多类似的问题都很老而且在 ObjC 中。
这是我认为导致问题的代码部分,它确实处理了滑块被移动的事件:我也尝试过没有 if 语句,但没有看到不同的结果。
@IBAction func horizontalSliderActioned(_ sender: Any) {
horizontalSlider.isContinuous = true
if self.horizontalSlider.isTouchInside {
audioPlayer?.pause()
let seconds : Int64 = Int64(horizontalSlider.value)
let preferredTimeScale : Int32 = 1
let seekTime : CMTime = CMTimeMake(seconds, preferredTimeScale)
audioPlayerItem?.seek(to: seekTime)
audioPlayer?.play()
} else {
let duration : CMTime = (self.audioPlayer?.currentItem!.asset.duration)!
let seconds : Float64 = CMTimeGetSeconds(duration)
self.horizontalSlider.value = Float(seconds)
}
}
Run Code Online (Sandbox Code Playgroud)
我将在下面包括我的整个班级以供参考。
import UIKit
import Parse
import AVFoundation
import AVKit
class PlayerViewController: …Run Code Online (Sandbox Code Playgroud) 我想在视图控制器之间进行更改后保存 UISwitch 的状态。任何帮助将不胜感激!
我有一个带有 UISwitch 的第一个视图控制器,用于在不同的视图控制器中控制背景中的音乐:
@IBOutlet weak var SwitchMusic: UISwitch!
let defaults = UserDefaults.standard
var switchON : Bool = false
@IBAction func checkState(_ sender: UISwitch) {
if (sender.isOn == true)
{
switchON = true
defaults.set(switchON, forKey: "switchON")
MusicHelper.sharedHelper.playBackgroundMusic()
}
if (sender.isOn == false)
{
switchON = false
defaults.set(switchON, forKey: "switchON")
MusicHelper.sharedHelper.stopBackgroundMusic()
}
}
Run Code Online (Sandbox Code Playgroud)
如果开关打开或关闭,第二个视图控制器在后台加载或不加载音乐:
override func viewDidLoad() {
super.viewDidLoad()
if defaults.value(forKey: "switchON") != nil{
let switchON: Bool = defaults.value(forKey: "switchON") as! Bool
if switchON == true{
MusicHelper.sharedHelper.playBackgroundMusic()
}
else …Run Code Online (Sandbox Code Playgroud) 我尝试使用 UISlider 实现简单的播放器来指示当前音频文件的时间。
在代码中我添加了两个观察者:
slider.rx.value.subscribe(onNext: { value in
let totalTime = Float(CMTimeGetSeconds(self.player.currentItem!.duration))
let seconds = value * totalTime
let time = CMTime(seconds: Double(seconds), preferredTimescale: CMTimeScale(NSEC_PER_SEC))
self.player.seek(to: time)
}).disposed(by: bag)
let interval = CMTime(seconds: 0.1, preferredTimescale: CMTimeScale(NSEC_PER_SEC))
player.addPeriodicTimeObserver(forInterval: interval, queue: nil) { [weak self] time in
self?.updateSlider(with: time)
}
Run Code Online (Sandbox Code Playgroud)
具有一个私有函数:
private func updateSlider(with time: CMTime) {
let currentTime = CMTimeGetSeconds(time)
var totalTime = CMTimeGetSeconds(player.currentItem!.duration)
if totalTime.isNaN {
totalTime = 0
}
startLabel.text = Int(currentTime).descriptiveDuration
endLabel.text = Int(totalTime).descriptiveDuration
slider.value = Float(currentTime / …Run Code Online (Sandbox Code Playgroud) 开始处理应用程序。有以下问题,在 Main.storyboard 中为滑块设置了当前值(顶部为 1.5 / 3,底部为 100 / 200),因此,在屏幕截图中,我中间的滑块轨道上应该有点。我开始搜索它,我找不到任何东西。可能是 Xcode 12 问题?如果没有,请帮我写出正确的搜索查询。我将不胜感激。对不起,我的英语不好。:)
这里视图控制器:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var heightLabel: UILabel!
@IBOutlet weak var weightLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func heightSliderChanged(_ sender: UISlider) {
print(sender.value)
heightLabel.text = String(format: "%.2f", sender.value) + "m"
}
@IBAction func weightSliderChanged(_ sender: UISlider) {
weightLabel.text = String(format: "%.0f", sender.value) + "Kg"
}
}
Run Code Online (Sandbox Code Playgroud)
第一个滑块的属性:
第二个滑块的属性:
uislider ×10
ios ×6
iphone ×4
swift ×4
avplayer ×2
cocoa-touch ×1
ipad ×1
objective-c ×1
siri-remote ×1
time ×1
tvos ×1
uiswitch ×1
xcode12 ×1