标签: uislider

UISlider,拇指不动

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 - 它可以工作!

iphone uislider ios-simulator

5
推荐指数
1
解决办法
5713
查看次数

是否可以使UISlider更小?

我担心我在这里遗漏了一些明显的东西,但我无法在任何地方找到答案,我也无法自己解决,所以我会问这里.

是否有可能使UISlider略小于默认值,就像在iPhone上的"iPod"应用程序中看到的那样?Interface Builder的高度似乎被冻结在23点.

它是如何在iPod应用程序上完成的?它使用自定义图像吗?

iphone cocoa-touch uislider

5
推荐指数
1
解决办法
2905
查看次数

ios 设置 UISlider 的起始位置和增量

有谁知道如何设置 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)

uislider ios

5
推荐指数
1
解决办法
8739
查看次数

如何控制 UISlider Value Changed-events 频率?

我正在编写一个 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)

iphone time uislider ios core-bluetooth

5
推荐指数
1
解决办法
3497
查看次数

UISlider有不同的颜色

我有一个最小值为0且最大值为5(任何值)的滑块,我需要在同一个滑块中显示5种不同的颜色,即0-1一种颜色,1-2种另一种颜色,依此类推.这可能吗 .如有任何想法,请帮助我.

iphone objective-c uislider ipad ios

5
推荐指数
1
解决办法
8938
查看次数

tvOS - 替换 UISlider

我正在为 tvOS 扩展 iOS 应用程序。

在 iOS 应用程序上,我有很多滑块(两侧滑块用于选择年份范围,例如 1950-2010。或从 0.1 到 10.0 的值)。

我想知道如何在 tvOS 上替换此功能。我最初的想法是覆盖 Siri 遥控器的音量按钮并更改值,但我不认为这Apple会允许这样做。

有什么建议吗?

uislider tvos siri-remote

5
推荐指数
1
解决办法
2337
查看次数

擦洗时跳跃的 UISlider - 将 UISlider 与 AVPlayer 一起使用

我正在使用 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)

uislider ios avplayer swift

5
推荐指数
2
解决办法
2530
查看次数

如何在 SWIFT 4 中保存 UISwitch 的状态?

我想在视图控制器之间进行更改后保存 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 uiswitch ios swift

5
推荐指数
1
解决办法
7545
查看次数

更新 AVPlayer 时 UISlider 跳转

我尝试使用 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)

uislider ios avplayer swift

5
推荐指数
1
解决办法
1644
查看次数

使用 UISlider 的起始值问题

开始处理应用程序。有以下问题,在 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 swift xcode12

5
推荐指数
1
解决办法
470
查看次数