美文网首页iOS开发知识小集
iOS一个音量大小动态改变的控件

iOS一个音量大小动态改变的控件

作者: Zz7777777 | 来源:发表于2019-02-22 14:30 被阅读4次

案例演示

  • 对于实时显示语音音量大小的需求,发现很多人的实现方式通过预放置多张图进行切换进行完成的。这样的处理,不但会浪费App的资源存储空间,而且效率也不高。对于符合某一定规律动态改变的图形,我们也可以考虑通过代码的方式来实现
图一.gif

实现机制

图二.png
  • 外部轮廓View主要控制显示大小和显示的圆角效果。内部的Layer主要控制动态显示的高度,虽然他是矩形的。但是当把该Layer加入到View中,而该View设置了_dynamicView.clipsToBounds = YES;。内部的Layer超过外部轮廓的部分,则会被切除掉。
    如此说来,我们只需要动态改变内部Layer显示的高度,即可完成该效果显示。是不是很简单啊。

实现代码

-(void)refreshUIWithVoicePower : (NSInteger)voicePower{
 CGFloat height = (voicePower)*(CGRectGetHeight(self.frame)/10);
    //每次进来清掉上一次的layer
    [_indicateLayer removeFromSuperlayer];
    _indicateLayer = nil;
    
    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, CGRectGetHeight(self.frame)-height, CGRectGetWidth(self.frame), height) cornerRadius:0];
    
    CAShapeLayer *indicateLayer = [CAShapeLayer layer];
    indicateLayer.path = path.CGPath;
    indicateLayer.fillColor = [UIColor grayColor].CGColor;
    [self.layer addSublayer:indicateLayer];
    _indicateLayer = indicateLayer;
}

实现的简单效果

图三.gif

请看demo

相关文章

  • iOS一个音量大小动态改变的控件

    案例演示 对于实时显示语音音量大小的需求,发现很多人的实现方式通过预放置多张图进行切换进行完成的。这样的处理,不但...

  • UISlider

    UIslider滑块控件在IOS开发中会常用到,可用于调节音量,字体大小等UI方面的交互, 用法总结如下: 初始化...

  • 滑杆

    UIslider滑块控件在IOS开发中会常用到,可用于调节音量,字体大小等UI方面的交互,用法总结如下: 1.初始...

  • UIslider滑块控件

    UIslider滑块控件在IOS开发中会常用到,可用于调节音量,字体大小等UI方面的交互,用法总结如下: 初始化一...

  • UISlider的使用

    UIslider滑块控件在IOS开发中会常用到,可用于调节音量,字体大小等UI方面的交互,用法总结如下: 初始化一...

  • CAShapeLayer实现音量大小动态改变

    实现如图这效果一般会直接通过多张图进行切换进行完成。但这样的处理,会浪费App的资源存储空间,而且效率也不高。那么...

  • iOS修改系统音量(MPVolumeView)

    iOS的AVFoundation调节音量大小时不会影响系统音量。但有时候我们可能希望修改系统音量,以免在调节声音的...

  • iOS中怎样计算一段文字的高度

    在很多情景下都会遇到根据文字的内容来动态计算一个控件的大小。 本文以固定控件宽度,动态计算文字高度为示例,其它情况...

  • iOS 侧滑

    ViewDeck 左右侧滑控件 MSDynamicsDrawerViewController iOS7 动态弹...

  • iOS AudioQueue 音量大小

    1、AudioQueue代理回调获取音频数据: 2、传入data数据获取音量大小 // .h文件 // Audio...

网友评论

    本文标题:iOS一个音量大小动态改变的控件

    本文链接:https://www.haomeiwen.com/subject/kdleyqtx.html