objective-c - 自定义垂直 UISlider 的问题

标签 objective-c ios uislider

我正在尝试实现没有拇指的垂直 slider ,它会对其轨道上的触摸使用react。我已经对 UISlider 进行了子类化,并且在水平 slider 中一切正常,但是当我将 slider 转换为垂直 slider 时,会出现一些带有坐标的奇怪东西。可能有其他方法来实现这个吗?请给我正确的方向,谢谢!

我现在将此代码用于 slider :

@implementation MMTouchSlider

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [[event allTouches] anyObject];
    CGPoint touchLocation = [touch locationInView:self];

    self.value = self.minimumValue + (self.maximumValue - self.minimumValue) * (touchLocation.x / self.frame.size.width);

    [super touchesBegan:touches withEvent:event];
}

- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value {

    CGRect thumbRect = [super thumbRectForBounds:bounds trackRect:rect value:value];
    return thumbRect;
}

@end

最佳答案

制作垂直 slider 很容易 - 只需旋转 270 度即可!

UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(100, 100, 200, 10)];
float angleInDegrees = 270;
float angleInRadians = angleInDegrees * (M_PI/180);
slider.transform = CGAffineTransformMakeRotation(angleInRadians);
[self.view addSubView:slider];

关于objective-c - 自定义垂直 UISlider 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7104692/

相关文章:

iphone - 将 UISlider.value 设置为 AVPlayer.currentTime

ios - 使用 UISlider 获取范围内的整数值

iphone - UINavigationController - 何时释放推送的 View Controller 等

java - 以编程方式在 AWS S3 上启用版本控制

ios - 获取表的索引路径

ios - 如何使用 iOS SpriteKit 在环形内强制触摸?

objective-c - 触摸 UISlider 会阻止 UIScrollView 的滚动

ios - 如何在开关部分使用自定义类实例化 UITableViewCell

objective-c - 如何模拟Cocoa的截图功能(Mac)?

iphone - 这些矩形是创建为 "struct of arrays"还是 "array of structs"?