标签: uislider

iOS中的双程和可移动滑块组件

我想实现一个类似滑块的组件,就像从Roambi截取的截图底部的组件.对于那些没有使用过Roambi的人来说,这个滑块是双倍范围的,即你可以从两端的蓝条中定义范围.然后,为了指示您感兴趣的数据区域,您可以将这些蓝色条之间的灰色区域向左/向右移动.

在此输入图像描述

为实现这一点,我想到了两件事:

  1. 左右蓝条是UIViews.我在这些视图上处理触摸事件以定义范围.这两个酒吧之间的中间区域也是UIView.我在此视图上处理触摸事件以向左/向右移动以定义数据区域.

  2. 我可以实现双程序UISlider以获得蓝条的功能.(我已经学会了如何做到这一点.)但后来我不知道如何移动滑块的主体来定义数据范围.这可能吗?

还有,还有另一种实现方法吗?

range uislider ios

6
推荐指数
1
解决办法
8462
查看次数

在特定点上点击时更改Uislider值

我想通过点击而不是通过拖动滑块拇指来点击UISlider上的特定点来触发动作.

如何在某个点上点击UISlider来设置滑块值?

一段代码将不胜感激.

iphone uislider ios

6
推荐指数
2
解决办法
6766
查看次数

如何在首次显示时使UISlider更厚?

我正在尝试制作一个有着厚重音轨的UISlider.我试过这个,它几乎可以工作.但是,首次显示UISlider时,轨迹栏是正常的.只有当它获得触摸事件时才会变得更厚.

这是我添加到我的UISlider子类中的代码,如下所示:

- (CGRect)trackRectForBounds:(CGRect)bounds
{
    return bounds;
}
Run Code Online (Sandbox Code Playgroud)

我不明白这是如何工作的,所以我无法弄清楚它为什么不能完美运作.这是我的问题:

  1. 这是如何运作的?
  2. 如何控制轨道的厚度?
  3. 首次绘制UISlider时如何使其影响轨迹?

当然,第三个问题是最重要的,尽管其他问题会帮助我理解.

还有一件事要考虑:首次显示时,我隐藏了拇指:

[slider setThumbImage:[[UIImage alloc] init] forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

当用户触摸滑块时,我会像这样显示拇指:

[slider setThumbImage:nil forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

我提到这个是因为我想知道这是否会以某种方式干扰trackRectForBounds魔术.

谢谢!

cocoa-touch objective-c uikit uislider ios

6
推荐指数
1
解决办法
5354
查看次数

iOS滑块的默认拇指图像的大小?

iOS滑块的(默认)拇指图像的确切大小(宽度,高度)是多少?是否有一些聪明的方法来哄骗这个系统(XCode,iOS)?

我试过了

int thumbWidth = slider.currentThumbImage.size.width;
Run Code Online (Sandbox Code Playgroud)

我在这个网站上找到它,但它回来了0.

附加问题:Xcode调试器在UISlider:中显示了这个未记录的变量CGFloat _hitOffset.有没有人偶然知道它是什么以及它的用途是什么?

xcode cocoa-touch objective-c uislider ios

6
推荐指数
2
解决办法
2万
查看次数

Sprite Kit iOS7 - 添加滑块

我以为你可以在精灵套件应用程序中添加UIKit滑块/或按钮.

但无法弄清楚如何做到这一点,以编程方式创建滑块的代码是

if (self.view) {
    CGRect frame = CGRectMake(0.0, 0.0, 200.0, 300);
    UISlider *slider = [[UISlider alloc] initWithFrame:frame];
    //[slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
    [slider setBackgroundColor:[UIColor clearColor]];
    slider.minimumValue = 0.0;
    slider.maximumValue = 50.0;
    slider.continuous = YES;
    [self.view addSubview:slider];
    NSLog(@"View is alive - look for slider...");
} 
else {
    NSLog(@"No View!!");
}
Run Code Online (Sandbox Code Playgroud)

以上不起作用,视图的子视图数量保持不变

我假设我必须将它作为子项添加到我的图层(SKNode),但addChild方法不适用于UISlider.它需要是一个SKNode本身.

我在这里的场景课中叫这个

-(id)initWithSize:(CGSize)size {    

    if (self = [super initWithSize:size]) {
         // thought putting here would work 
         // but self.view is nil
    }

    return self;
}
Run Code Online (Sandbox Code Playgroud)

感谢评论,我可以让它显示 - 但我必须在viewController类中添加,就像这样 …

uislider sprite-kit

6
推荐指数
1
解决办法
2972
查看次数

改变UISlider的背景图像?

我需要更改a的背景UISlider,我的目标是创建UISlider,如下图所示:

UISlider

我试过setBackgroundImage方法,但它就像滑块的框架.

如何更改滑块的背景图像?

uislider ios

6
推荐指数
1
解决办法
8225
查看次数

如何阅读UISlider拇指图像的大小

我正试图在UISlider中将一个额外的UIView放在拇指上方.为此,我需要拇指图像的宽度.在iOS6中,这很好用.我可以用:

CGFloat thumbWidth = self.navSlider.currentThumbImage.size.width;
Run Code Online (Sandbox Code Playgroud)

(如下所示:如何获得UISlider拇指图像的中心)

这在iOS7中返回0.0f.我也试过用它来阅读:

UIImage *thumb = [self.navSlider thumbImageForState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

但拇指结束为零.

是否可以读取默认滑块拇指图像的大小?或者我必须找到它,设置一个常量,以及Apple如何在以后不改变它?

iphone uislider ios

6
推荐指数
2
解决办法
7079
查看次数

UIslider拇指图像不从头开始

我正在尝试实现一个控件来显示视频的进度,我正在使用带有自定义拇指图像的UISlider,但拇指图像不是从头开始,也不会一直持续到最后.

playerProgress = UISlider(frame: CGRectMake((btnImage.size.width + 2 * VideoViewControllerUX.ControlPadding), 0, (screenRect.size.width - (btnImage.size.width + 3 * VideoViewControllerUX.ControlPadding)), btnImage.size.height))
playerProgress.setThumbImage(UIImage(named: "slider"), forState: UIControlState.Normal)
playerProgress.maximumValue = 100
playerProgress.minimumValue = 0
playerProgress.addTarget(self, action: "playerProgressChanged:", forControlEvents: UIControlEvents.ValueChanged)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我不知道最近发生了什么.

拇指图像: 在此输入图像描述

uislider ios swift

6
推荐指数
1
解决办法
2720
查看次数

UISlider没有更新Swift中的当前值

我在表格视图单元格中有一个滑块,我正在尝试将标签的文本设置为滑块的值.但是,文本未设置为更改的滑块值.我究竟做错了什么?

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = UITableViewCell()


 if indexPath.section == 0 {

        let slider = UISlider(frame: CGRectMake(0, 0, 320, 44))
        slider.userInteractionEnabled = true
        slider.minimumValue = 1
        slider.maximumValue = 100
        slider.value = 50
        slider.continuous = true
        cell.addSubview(slider)
        println(cell.bounds)


        let label = UILabel(frame: CGRectMake(260, -20, 100, 20))
        var theValue = Int(slider.value)
        label.text = "\(theValue)" + "mi."
        cell.addSubview(label)

 }
Run Code Online (Sandbox Code Playgroud)

uilabel uislider ios swift

6
推荐指数
1
解决办法
5767
查看次数

iOS UISlider值不匹配

我在我的一个App中实现了Vertical Slider UISlider.当滚动结束/完成时,我将使用Slider值向服务器发送命令.有时当我快速向上/向下滚动并释放时,滑块值在发送命令之前和发送命令之后变得不匹配.

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
   NSLog(@"Value of Slider before sending command=%f",self.value);
   [self sendCommand]; // Here value is something else  
   [super touchesEnded:touches withEvent:event];
   NSLog(@"Slider value after sending command=%f",self.value); // Here value changed
}
Run Code Online (Sandbox Code Playgroud)

但如果我在发送命令之前发出超级调用,那么一切正常.请解释是否有人知道为什么会这样.

[super touchesEnded:touches withEvent:event];
Run Code Online (Sandbox Code Playgroud)

更有趣的事实是,如果我不打电话给超级,那么一切都运作良好.

objective-c uislider ios

6
推荐指数
1
解决办法
233
查看次数

标签 统计

uislider ×10

ios ×9

objective-c ×3

cocoa-touch ×2

iphone ×2

swift ×2

range ×1

sprite-kit ×1

uikit ×1

uilabel ×1

xcode ×1