UISlider自定义(自带value与旋转支持)

首先申明,代码是参考https://github.com/QiShare/QiSlider 改造而成

Github中这个代码其实在IOS 14上是有问题的,即使ISSUE下面几位高手的解释也不是很适用。经过我的实践,再加上我这边旋转的需求,改造如下:
头文件:

@interface SWSlider : UISlider

@property (nonatomic, strong) UIFont *textFont;
@property (nonatomic, strong) UIColor *textColor;
@property (nonatomic, copy) void(^valueChanged)(UISlider *);
@property (nonatomic, assign) CGFloat angle;

@end

这里的angle就是用来调整旋转后的效果的,因为一般来说,slider整体旋转后,最大值最小值以及当前值的标识应该保持水平。 angle的设置代码如下:

-(void)setAngle:(CGFloat)angle{
   
    _angle = angle;
    [self setTransform:CGAffineTransformMakeRotation(angle)];
}

然后slider设置angle来旋转,不用设置transform。

接下是对QISider的修改:
1)获取thumbView部分:

- (UIView *)thumbView {
   
    if(@available(iOS 14.0, *)) {
   
      if (!_thumbView) {
   
          UIView *view = self.subviews[0];
          if (view.subviews.count > 2) {
   
              _thumbView = view.subviews[view.subviews.count - 1];
              if([view.subviews[0] isKindOfClass:[UIImageView class]]) {
   
                  view.subviews<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值