我有一个自定义UITableViewCell包含一个UISlider控件和一个UILabel,它显示滑块位置的当前文本值.我想在拖动滑块旋钮时更新标签.这是基本要素.
cellForRowAtIndexPath:此例程获取数据并更新滑块值以及与之关联的标签.
sliderValueChanged:此例程读取滑块值更新数据.然后调用[table reloadData],以便更新标签.
问题:以某种方式reloadData正在中断更新流程.如果我替换NSLog而不是reloadData,我会得到一个很好的更新流,显示滑块的值.为了防止循环,我将测试设置为不设置滑块值或调用reloadData,除非值不同.这没有解决问题.
任何帮助将不胜感激!
有没有为UISlider设置刻度线的方法.NSSlider有一些叫做的东西
- (void)setNumberOfTickMarks:(NSInteger)numberOfTickMarks.但是UISlider似乎没有.
我想要做的是将滑块值设置为0,1,2,3,4等,如果我将min设置为0并将max设置为5.现在这样UISLider返回类似0.0,0.1,0.2,0.3等的内容4.8 ,基于我上面给出的例子,4.9,5.0.
任何帮助?
所以我有一个UISlider我正在定制一些图像:
UIImage *stetchLeftTrack = [[UIImage imageNamed:@"slider_blue.png"] stretchableImageWithLeftCapWidth:9.0 topCapHeight:0.0];
UIImage *stetchRightTrack = [[UIImage imageNamed:@"slider_white.png"] stretchableImageWithLeftCapWidth:9.0 topCapHeight:0.0];
[volumeSlider setThumbImage: [UIImage imageNamed:@"slider_blob.png"] forState:UIControlStateNormal];
[volumeSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
[volumeSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
我实际上只是试图复制音量控件,如iPod应用程序中所示(AFAIK在代码中无法做到).因为我正在使用高分辨率图像,它会在应用程序上绘制所有内容,如下所示:

实际上,当期望的效果是:

如果我缩小实际图像,我会失去质量,看起来像垃圾和模糊!所以我希望在代码中做到这一点,但有点迷失...
我想编程方式创建自定义UITableViewCell用UISlider在中心和两个图像在两端.有关示例,请参阅任何iOS设备上的亮度设置.它的中心有一个UISlider,两端有两个类似太阳的图像(一个小,一个大).这基本上就是我所说的:

以编程方式创建此自定义的最简单方法是UITableViewCell什么?
干杯!
如何以编程方式设置UISlider的最小最大范围?
例如(虚拟代码)
UISlider* slider = [[UISlider alloc] init];
slider.min = -3;
slider.max = 3;
Run Code Online (Sandbox Code Playgroud)
编辑:
所以我有以下内容:
sl.minimumValue = 5;
NSLog(@"MIN VAL: %d", sl.minimumValue);
Run Code Online (Sandbox Code Playgroud)
这不起作用,我仍然记录值0.这是因为我在界面构建器中设置了值吗?
- 已解决 -
我知道它们存在,但我没有找到一个可以轻松满足一些非常基本需求的滑块,我相信我不是唯一一个对这个问题感到沮丧的人.这就是我到目前为止所拥有的.我正朝着正确的方向前进吗?
我正在尝试做什么:
使用JQuery UI滑块,我需要在页面上有多个滑块.每个滑块的最小值为0,动态最大值和动态默认值.我在输入字段中使用html元素min,max,value设置这些值,然后通过javascript/jquery检索它们.
除了它们各自的最大值之外,还需要总摩擦力的总和不能超过的最大值.最后,我还需要从输入框(以及滑块本身)更新滑块的可用性.
我到目前为止:
在研究了许多滑块后,我决定使用JQuery UI滑块,并最终发现这篇文章让我开始实现我的目标:多个jQuery-UI滑块的总计
我将代码更改为(1)使用隐藏的输入字段来检索总的最大值; (2)用当前值填充输入文本字段而不是span; (3)从max =属性设置单个滑块的初始最大值; (4)将滑块设置为禁用:如果初始最大值为0,则为true;否则为0.(5)监听文本框的更改,如果不超过最大值,则根据输入的数字移动滑块.
当前代码(JSFiddle):(见答案中的jsfiddle)
(滑块#1初始最大值为0 - 禁用//其他滑块最大值为500 //总表格最大值为1000)
滑块正在做什么:
我需要帮助/修复的想法:
让我知道你的想法.
更新:
我很难过没有听到任何回应,但我想我已经破解了.需要限制原始代码的可靠性并且主要是重写.我将在下面提交我的解决方案作为答案.请试试看,让我知道你的想法.这是一个相当大的过程,所以希望有人发现这个有用:)
让我们假设有一个UISlider我设置了一定值.然后滑块手柄移动到该值,如预期的那样.
现在我想让用户前后滑动滑块的手柄,但是不要将其值设置UISlider为小于我以编程方式分配给它的值.
所以例如我有一个UISlider最小值为0,最大值为100,我将其值设置为50.我不希望用户滑动"lefter"而不是50但是在它的"右侧"我想让用户来回滑动手柄.
你如何在Obj-C中实现这种行为?
我坚持使用某种魔法:当我尝试更改UITextView框架(在本例中使用UISlider)时,文本将绘制在除框架之外的其他(较小)区域中(多次调整大小).有趣的是,如果我们在尝试使框架更大时滑动得足够快,则会在非常正确的区域绘制文本.有人可以解释一下原因吗?我尝试布局,自动调整大小,设置内容大小和范围,但没有任何作用.
- (void)viewDidLoad
{
[super viewDidLoad];
_textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
_textView.backgroundColor = [UIColor greenColor];
_textView.text = @"some useless text which will be drawn bad";
[self.view addSubview:_textView];
UISlider *slide = [[UISlider alloc] initWithFrame:CGRectMake(10, 130, 100, 20)];
[slide setValue:0.0];
[slide addTarget:self action:@selector(changedValue:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:slide];
}
- (void)changedValue:(UISlider *)slider
{
CGRect textViewFrame = _textView.frame;
textViewFrame.size.width = [slider value] * 200;
_textView.frame = textViewFrame;
}
Run Code Online (Sandbox Code Playgroud)
在调整大小之前 
调整大小后
在我的iOS应用程序(8.1)中.我有一个UISlider,其连续属性设置为YES(因为我需要动态更新标签).
我的问题是我还需要发送选择的值并将其发送到服务器.所以在我的情况下,它现在一直都这样做.
我能以某种方式获得最后一个值吗?用户松开手指后的值?
任何形式的帮助都非常感谢.
PS我在Stackoverflow上查看了很多解决方案,比如touchesBegan/ends,链接NIB中的事件但到目前为止没有任何工作.
我正在开发一个设计应用程序,它有一个用于通过三个RGB滑块选择颜色的部分.正如我们在xcode中看到的那样,我们想要通过RGB值选择颜色,滑块色调颜色是渐变颜色,当我们更改滑块时会改变颜色.我想在我的应用程序中使用它.但我不知道该怎么做?
我在博客中找到了这段代码.但对我不起作用.
- (void)setGradientToSlider:(UISlider *)Slider WithColors:(NSArray *)Colors{
UIView * view = (UIView *)[[Slider subviews]objectAtIndex:0];
UIImageView * maxTrackImageView = (UIImageView *)[[view subviews]objectAtIndex:0];
CAGradientLayer * maxTrackGradient = [CAGradientLayer layer];
CGRect rect = maxTrackImageView.frame;
rect.origin.x = view.frame.origin.x;
maxTrackGradient.frame = rect;
maxTrackGradient.colors = Colors;
[maxTrackGradient setStartPoint:CGPointMake(0.0, 0.5)];
[maxTrackGradient setEndPoint:CGPointMake(1.0, 0.5)];
[[maxTrackImageView layer] insertSublayer:maxTrackGradient atIndex:0];
/////////////////////////////////////////////////////
UIImageView * minTrackImageView = (UIImageView *)[[view subviews]objectAtIndex:1];
CAGradientLayer * minTrackGradient = [CAGradientLayer layer];
rect = minTrackImageView.frame;
rect.size.width = maxTrackImageView.frame.size.width;
rect.origin.x = 0;
rect.origin.y = 0;
minTrackGradient.frame = rect;
minTrackGradient.colors …Run Code Online (Sandbox Code Playgroud) uislider ×10
ios ×5
iphone ×4
objective-c ×4
uitableview ×2
xcode ×2
cgrect ×1
cocoa-touch ×1
gradient ×1
ios8 ×1
javascript ×1
jquery ×1
jquery-ui ×1
uitextview ×1
xcode6 ×1