`
啸笑天
  • 浏览: 3465530 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

UISlider 获取滑块上方坐标&解决滑块两边空隙

 
阅读更多

 

  • 获取滑块上方坐标:

   

比如infoView是上面要显示的坐标,scrubberSliderUISlider

    self.infoView.hidden = NO;

    CGRect trackRect = [self.scrubberSlider convertRect:self.scrubberSlider.bounds toView:nil];//可能scrubberSlider嵌套,求出scrubberSlider在最外层(infoView父层)的frame

    CGRect thumbRect = [self.scrubberSlider thumbRectForBounds:self.scrubberSlider.bounds trackRect:trackRect value:self.scrubberSlider.value];//得到滑块在最外层(infoView父层)的frame

   

   infoxy

    CGRect rect = self.infoView.frame;

   [self.infoView sizeToFit];

    rect.origin.x = (thumbRect.origin.x) - ceilf(CGRectGetWidth(self.infoView.frame) / 2) + 16;

    rect.origin.y = self.boundsHeight - 80;

    self.infoView.frame = rect;

 

 

  • UISlider两边有空隙的解决方法:

重写UISlider的这个方法:改变滑块的触摸范围

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

{//返回滑块大小

    rect.origin.x = rect.origin.x - 10 ;

    rect.size.width = rect.size.width +20;

    return CGRectInset ([super thumbRectForBounds:bounds trackRect:rect value:value], 10 , 10);

}

 

 

当然UISlider还有这么几个方法可以重写:

 

// 控制slider的宽和高,这个方法才是真正的改变slider滑道的高的

-(CGRect)trackRectForBounds:(CGRect)bounds

{//返回滑道大小

    bounds.origin.x=15;

    bounds.origin.y=bounds.size.height/3;

    bounds.size.height=bounds.size.height/5;

    bounds.size.width=bounds.size.width-30;

    return bounds;

}

 

- (CGRect)minimumValueImageRectForBounds:(CGRect)bounds

{//返回左边图片

    return CGRectMake(0, 0, CGRectGetWidth(self.frame), CGRectGetHeight(self.frame));

}

 

- (CGRect)maximumValueImageRectForBounds:(CGRect)bounds

{//返回右边图片

    return CGRectMake(0, 0, CGRectGetWidth(self.frame)/ 2, CGRectGetHeight(self.frame) / 2);

}

分享到:
评论

相关推荐

    iOS中的UISlider滑块组件用法总结

    在iOS开发中,UISlider是一个非常重要的组件,它不仅可以用作开关,还可以作为进度条来显示和调整数值。本文将详细讲解如何在iOS中使用UISlider组件。 首先,创建一个UISlider对象。滑块是一个继承自UIControl的...

    两个滑块的范围选择UISlider

    实现了一个有两个滑块,可以选择一个范围的UISlider。是在网上找到的一个控件的基础上作了包装,可以实时显示现在选择范围。可用于选择价格范围等。 现有的问题: 1、没有实现step的功能。 2、滑块的滑动还不是特别...

    Slider相当于UIKit中的UISlider,通过移动滑杆实现指定区域和间隔的数值的选择

    SwiftUI的Slider组件是iOS、macOS、watchOS和tvOS等Apple平台上用户界面设计的重要元素,它在SwiftUI框架中扮演着与UIKit中的UISlider相同的角色。Slider允许用户通过直观地滑动一个条形控件来选择介于两个预设数值...

    ios的UISlider自定义

    一个UISlider主要由三部分组成:轨道(track), thumb(滑块)和当前值指示器。自定义图片主要针对轨道和滑块进行。 1. **轨道自定义**: - 设置轨道背景:你可以通过`setMinimumTrackImage:forState:`和`...

    iOS 滑块很好用

    为了获取滑块的位置变化信息,我们需要实现滑块的委托协议,即UISlider的`UIControlDelegate`。首先,在你的类中声明委托,并在初始化滑块时设置它: ```swift class ViewController: UIViewController, ...

    UISlider控制北京颜色

    滑块的位置表示当前选定的值,当用户移动滑块时,会触发UISlider的`valueChanged`事件,此时我们可以获取到新的值并执行相应的操作。 在本项目中,我们的目标是根据UISlider的值来改变背景颜色。这涉及到以下几个...

    UISlider封装

    我们需要确保标签始终显示在滑块的上方或下方,跟随滑块的移动而更新位置。这可以通过设置约束或者计算滑块和标签的相对位置来实现。例如,我们可以为标签设置居中对齐的约束,并根据滑块的值来动态调整其y坐标。 ...

    UISlider Demo代码

    在iOS开发中,UISlider是苹果提供的一个基本控件,用于显示用户可调节的滑动条,常用于音量控制、进度调整等场景。本`UISlider Demo`代码旨在通过实例展示如何创建、自定义以及操作UISlider,帮助开发者更好地理解和...

    UISlider.zip

    除了这些基本属性,UISlider还支持自定义滑动条的图像,包括滑块的背景、滑块本身的图像以及滑块的轨道图像。这可以通过以下方式实现: 1. **minimumTrackImage**: 用于设置滑条未被选中部分的图像。 2. **...

    ios-自定义UISlider.zip

    1. **自定义滑块外观**:原生的UISlider虽然提供了基础的样式,但往往无法满足开发者对于界面设计的个性化需求。在这个自定义版本中,滑块的形状、颜色、大小可能都被调整过,以适应更美观或更符合应用风格的设计。 ...

    IOS应用源码——UIslider转圆圈.rar

    5. **事件监听和处理**:添加手势识别器(如`UIPanGestureRecognizer`)来监听滑动事件,然后根据滑动的方向和速度计算出滑块在圆周上的位置,并更新其坐标。 6. **适配不同设备和方向**:为了保证在各种屏幕尺寸和...

    多种方式实现随手指移动的滑块

    以上就是实现随手指移动的滑块的一些常见方法,涵盖了Web端、移动端及各种框架的解决方案。无论选择哪种方式,关键在于理解用户交互逻辑,结合具体平台的API和组件特性,创建出流畅、易用的滑块效果。在实际应用中,...

    ios-iOS范围选择滑块.zip

    首先,我们来看一下滑块(UISlider)的基本用法。UISlider是UIKit框架中的一个类,通过继承自UIControl,提供了一个在指定范围内的连续值选择。创建一个基本的滑块可以通过以下代码实现: ```swift let slider = ...

    IOS手势拖拽滑块

    在上述代码中,我们获取了手势的位移,然后将这个位移转换为滑块的新值。同时,我们确保新值不会超出滑块的最小值和最大值范围。 关于“是否弹回界面边框”的配置,这通常涉及到滑动手势结束后滑块的行为。默认情况...

    iphone 开发基础控件UISlider

    - `value`: 获取或设置滑块当前的值。可以通过改变此属性来初始化滑块的位置。 ```swift slider.value = 50 ``` - `minimumTrackTintColor` 和 `maximumTrackTintColor`: 设置滑块轨道的背景颜色。通常,...

    通过滑块改变图片透明度

    在这个方法中,我们获取了滑块的当前值(即新的透明度),然后创建一个新的图形上下文,使用`drawInRect:blendMode:alpha:`方法绘制原始图片并设置其透明度。完成后,我们从图形上下文中获取新的带有调整透明度的...

    按钮滑块联动

    - 滑块:使用`UISlider()`初始化滑块,可调整其最小值、最大值、初始值等属性,如`let slider = UISlider(minValue: 0, maxValue: 100, value: 50)`。 2. **事件处理** - 给按钮添加点击事件监听器,使用`...

    UISlider的用法举例

    列举了UISlider的一些常用属性及用UISlider控制uilabel内字体的大小,

    CharonChui#iOSStudyNote#11.UI基础之UISlider&UISwitch1

    11.UI基础之UISlider&UISwitchoverride func viewDidLoad() {// 左边的图标// 右边的图标// 设置滑块图标/

Global site tag (gtag.js) - Google Analytics