Iphone UISlider自定义图像和拇指高度?

Iphone UISlider自定义图像和拇指高度?,iphone,ios,uislider,Iphone,Ios,Uislider,我正在创建(或尝试)一个定制的UISlider外观,仍然是水平的,但要高得多。我有两个问题 1.这是我用来将图像放到滑块上的代码 UIImage *minImage = [UIImage imageNamed:@"sliderMin.png"]; UIImage *maxImage = [UIImage imageNamed:@"sliderMax.png"]; UIImage *thumbImage = [UIImage imageNamed:@"sliderThumb.png"]; min

我正在创建(或尝试)一个定制的UISlider外观,仍然是水平的,但要高得多。我有两个问题

1.这是我用来将图像放到滑块上的代码

UIImage *minImage = [UIImage imageNamed:@"sliderMin.png"];
UIImage *maxImage = [UIImage imageNamed:@"sliderMax.png"];
UIImage *thumbImage = [UIImage imageNamed:@"sliderThumb.png"];

minImage = [minImage stretchableImageWithLeftCapWidth:33.0 topCapHeight:0.0];
maxImage = [maxImage stretchableImageWithLeftCapWidth:33.0 topCapHeight:0.0];
// thumbImage = [minImage stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];

[_contrastSlider setMinimumTrackImage:minImage forState:UIControlStateNormal];
[_contrastSlider setMaximumTrackImage:maxImage forState:UIControlStateNormal];
[_contrastSlider setThumbImage:thumbImage forState:UIControlStateNormal];

minImage = nil;
maxImage = nil;
thumbImage = nil;

[_contrastSlider setMinimumValue:0.0];
[_contrastSlider setMaximumValue:100.00];
[_contrastSlider setValue:25.0];
我有三张图片,min,max和thumb。这些是图像以及它们在设备上的外观,这是不正确的

我还不能发布图片,所以这里有一个显示组件的示例

滑块应该是拇指右侧的奶油色,左侧的粉红色。但这并没有发生

这就是问题1。问题2是拇指大小默认值太小。我用这个:试图增加拇指的高度,但不幸的是,它使拇指变得更宽而不是更高。因此,我请求帮助,使该地区更高,而不是更宽,并想知道为什么我的粉红色图像被忽视

谢谢你的帮助

如果有帮助,下面是我的UISlider子类。m:

-(BOOL) pointInside:(CGPoint)point withEvent:(UIEvent*)event {
CGRect bounds = self.bounds;
bounds = CGRectInset(bounds, -10, -8);
return CGRectContainsPoint(bounds, point);
}

-(BOOL)开始触摸:(UITouch*)触摸事件:(UIEvent*)事件{
CGRect边界=自边界;
浮动拇指百分比=(self.value-self.minimumValue)/(self.maxiumvalue-self.minimumValue);
float thumbPos=拇指大小+(拇指百分比*(bounds.SIZE.width-(2*拇指大小));
CGPoint接触点=[touch locationInView:self];

return(touchPoint.x>=(thumbPos-EFFECTIVE\u THUMB\u SIZE)&&touchPoint.x结果表明,在views Dod load方法中设置滑块值会导致问题。我在Interface Builder中设置了这些值,这是固定的。在IB中设置后,如果需要,我可以在代码中对它们进行调整


至于我的另一个问题,我想知道这是否是因为我没有在实际设备上进行测试,所以我将暂停这个问题,直到几周后在设备上进行测试。

结果是,在views Dod load方法中设置我的滑块值导致了问题。我在Interface Builder中设置了这些值,这是固定的。一旦在IB中设置,我就无法解决问题如果需要的话,在代码中弱化它们,并且没有问题


至于我的另一个问题,我想知道这是否是因为我没有在实际的设备上进行测试,所以我将暂停这个问题,直到几周后我在设备上进行测试。

我现在在设备上进行测试,而触摸区域是原始滑块高度的问题仍然存在,所以我需要解决这个问题。但这并不像您所说的那样是一个主要问题自然地触摸滑块的中间部分。我没有,但当我与用户一起测试时,它从来没有被作为一个问题提出。这对非视网膜设备有效吗?高度不会因为某些原因而改变。但是在视网膜设备中,all good@mrempty对我来说,它对非视网膜也有效。让我看看是否可以挖掘并与您共享我的项目文件。我现在一切都好了。我不明白发生了什么,可能是一些缓存我不知道。无论如何谢谢你!!我现在正在设备上测试,触摸区域是原始滑块高度的问题仍然存在,所以我需要解决这个问题。但这不是一个大问题,因为你自然会触摸滑块的中间部分。我没有,但当我测试时对于用户来说,这从来都不是一个问题。这对非视网膜设备有效吗?高度不会因为某种原因而改变。但在视网膜设备中,all good@mrempty对我来说,它对非视网膜设备也有效。让我看看是否可以挖掘并与您共享我的项目文件。现在一切都很好。我不明白发生了什么,可能是一些缓存我不知道。谢谢!!组件图像链接已断开组件图像链接已断开
-(BOOL) beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
  CGRect bounds = self.bounds;
  float thumbPercent = (self.value - self.minimumValue) / (self.maximumValue - self.minimumValue);
  float thumbPos = THUMB_SIZE + (thumbPercent * (bounds.size.width - (2 * THUMB_SIZE)));
  CGPoint touchPoint = [touch locationInView:self];
  return (touchPoint.x >= (thumbPos - EFFECTIVE_THUMB_SIZE) && touchPoint.x <= (thumbPos + EFFECTIVE_THUMB_SIZE));
}