首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让UIView的宽度随着上传百分比的增加而增加?SWIFT 4

在Swift 4中,你可以通过以下步骤来实现让UIView的宽度随着上传百分比的增加而增加:

  1. 创建一个UIView对象,并设置其初始宽度。
  2. 创建一个进度条或者其他方式来获取上传百分比的值。
  3. 监听上传百分比的变化,并在变化时更新UIView的宽度。

下面是一个示例代码:

代码语言:txt
复制
import UIKit

class ViewController: UIViewController {
    // 创建一个UIView对象
    let progressView = UIView()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 设置UIView的初始宽度
        progressView.frame = CGRect(x: 0, y: 0, width: 0, height: 10)
        progressView.backgroundColor = UIColor.blue
        view.addSubview(progressView)
        
        // 模拟上传百分比的变化
        let uploadPercentage = 0.5 // 假设上传百分比为50%
        updateProgressViewWidth(percentage: uploadPercentage)
    }
    
    func updateProgressViewWidth(percentage: Double) {
        // 获取当前视图的宽度
        let viewWidth = view.frame.width
        
        // 根据百分比计算新的宽度
        let newWidth = viewWidth * CGFloat(percentage)
        
        // 更新UIView的宽度
        progressView.frame.size.width = newWidth
    }
}

在这个示例中,我们创建了一个UIView对象作为进度条,并设置其初始宽度为0。然后,我们通过调用updateProgressViewWidth方法来更新进度条的宽度,传入当前的上传百分比作为参数。在updateProgressViewWidth方法中,我们根据百分比计算新的宽度,并将其赋值给进度条的宽度。

请注意,这只是一个简单的示例,你可以根据实际需求进行修改和扩展。另外,如果你需要实时更新上传百分比,你可能需要使用异步任务或者其他方式来获取上传进度的变化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS下界面布局利器-MyLayout布局框架

其内核是基于对UIViewlayoutSubviews方法重载以及对子视图bounds和center属性设置实现。...MyLayout还提供了Swift版本TangramKit MyLayout优势 MyLayout实现内核是基于frame设置,不是对AutoLayout封装。...因此在使用上不会受到任何操作系统版本限制。 有文章表明用frame进行布局性能要高于用AutoLayout进行布局性能,尤其是当界面内视图数量增加时效果更加明显。...应用场景 举例下面一个应用场景: 有一个容器视图S宽度是100高度则是由四个从上到下依次排列子视图A,B,C,D高度总和。...视图A左边距占用父视图宽度20%,右边距则占用父视图宽度30%,高度则等于自身宽度。 视图B左边距是40,宽度则占用父视图剩余宽度,高度是40。

1.9K30

iOS布局之AutoresizingMask和AutoLayout

100, 100)]; subView.backgroundColor = [UIColor purpleColor]; [superView addSubview:subView]; //设置子视图宽度随着父视图变化...(0, 0,200 , 200); 以上代码中我们设置了子视图宽度随父视图变化改变,其效果图如下: ?...屏幕快照 2016-09-18 下午4.53.23.png 我们可以看到,图中子视图宽度随着父视图宽度增加到了二倍。这就是AutoResizing一个最简单应用。...image.png 2.然后我们进入size Inspector,在这里我们可以看到与AutoResizing布局属性相关红色线条,我们在这里选择或者取消红线,就相当于增加或者取消了子视图自动跟随约束...那么AutoLayout在开发中具体如何使用呢,这其实分为两种情况,一种是借助xib中约束功能通过连线方法实现。

1.8K60

开源UI界面布局框架MyLayout1.9发布

*/ -(id (^)(CGFloat))width; /** 视图宽度设置,percent表明占用父视图宽度百分比值,inc表明在百分比基础上增量值。...在新版本中为了实现flexbox中一些能力,特别增加4个停靠属性: MyGravity_Horz_Around MyGravity_Horz_Stretch MyGravity_Vert_Around...对于MyLayout来说因为具有对边界线支持能力,边界线内部实现是采用CALayer来实现,CALayer对颜色输入是CGColorRef对象,因此为了支持黑白模式适配也进行版本升级,以便边界线也能实现黑白模式适配能力...具体行内对齐停靠使用可以参考DEMO工程中FLLTest4ViewController和FLLTest9ViewController 8.流式布局和浮动布局对基线对齐支持 新版本中对于垂直流式布局以及垂直浮动布局中每一行子视图之间新增加了对基线对齐支持...在老版本中如果我们想某个视图宽度自适应时可以通过设置wrapContentWidth 属性为YES即可,视图高度自适应时则可以通过设置wrapContentHeight属性为YES即可。

1.7K10

《Motion Design for iOS》(十七)

我们还将它背景颜色属性设为了红色。如我前面所说,要让一个视图角变为圆角,你需要获取它layer,所以我们设置它layer.cornerRadius值为50,这是宽度一半。...这里是和上面一样功能,但是是Swift不是Objective-C写。你可以打开Balls In Swift Xcode工程导出这个例子Swift版本。...现在我们它动起来。 iOS提供了一些内置技术来创建动画:创建并添加一个CAAnimation到我们之后要讨论layer中,或者使用简单基于block动画方法来动画化UIView值。...让我们创建一个基于block动画来将圆从1.0扩大到2.0倍,这会它变成原来两倍大。...这里是Swift下同样代码: UIView.animateWithDuration(0.5, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut

93820

Quartz2D复习(四) --- 图层CALayer和动画CAAnimation

retain) CALayer *layer; 4)、当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了...UIView本身不具备显示功能,是它内部层才有显示功能 5)、通过CALayer对象,可以很方便调整UIView一些外观属性,比如:阴影、圆角大小、边框宽度和颜色。。。...3)、Core Animation是直接操作在CALayer上,并非UIView 4)、CAAnimation继承结构,紫色虚线表示继承自某类,红色虚线表示遵守某个协议 : ?...: keyPath相应属性初始值   toValue: keyPath相应属性结束值   动画过程说明: 随着动画进行,在长度为duration持续时间内,keyPath相应属性值从fromValue...  subtype : 动画过度方向   startProgress : 动画起点(在整体动画百分比)   endProgress : 动画终点(在整体动画百分比)   转场动画过度效果: ?

1.4K30

iOS 面向协议方式封装空白页功能

Swift除了可以面向对象编程,它还可以面向协议编程。那可不可以也用协议来解决情况呢?...我们现在目的就是目标控制器或者目标视图在遵守我们协议后,就可以有实现空白页功能。...delegate和source设置为了self ,协议是无法遵守再次遵守其它协议,那什么来遵守对应协议呢?...大功告成 三、开源库 我对这个过程进行一次整理,并做成一个名为 LXFProtocolTool 库并上传至gitHub。...' 创建这个库目的是为了通过协议方式来方便快捷地实现一些实用功能,目前功能不多,不过往后会逐渐增加,或许你有什么想实现功能也可以提出来,喜欢就给个Star鼓励下我吧 ?

1.4K50

MyLayout&TangramKit 重大升级!

很明显UIView返回值是默认值,UILabel和UITextView这些类则重载了这个方法并返回了根据自身内容计算出来尺寸。...可以看出来要实现父容器视图S尺寸自适应时不是通过设置宽度和高度尺寸依赖来实现而是通过设置父视图边界依赖于某个子视图边界来实现。具体代码展示如下: //这里忽略了视图创建代码。...,容器视图四个边界分别等于滚动视图四个边界,这里必须要这样设置。...要求S高度和宽度根据三个子视图高度和宽度自适应,那么只需要将布局视图S约束设置为如下: //OC版本 S.wrapContentSize = YES; //Swift版本 S.tg_size(width...A视图是一个MyLayout&TangramKit布局视图,其宽度等于父视图S宽度高度则根据布局视图里面的子视图高度自适应,B视图则在A视图下方,并且宽度等于A视图。

2K20

iOS开发常用之测试调试、动态更新

CleanroomLogger - 相当于CocoaLumberjack或Log4jSwift版本,功能上甚至更强大。另外,源代码中已经内含了完整API文档,使用非常方便。...这套工具中包括上传ipa文件,自动截取多语言截屏,生成推送证书,管理产品证书等一系列实用工具。 KIF - 是一个开源用户界面UI测试框架。...MMPlaceHolder - 一行代码显示UIView位置及相关参数。 XXPlaceHolder.swift - MMPlaceHolderswift版本。...掉帧通常是可见,但是很难区分55fps和60fps之间不同,KMCGeigerCounter可以你观测到掉掉5帧情况。...是不可多得地学习WatchKit示例式教程(1.如何创建一个简单交互式计数器; 2.如何从手表上控制iOS应用程序; 3.如何在WatchKit应用程序和iOS应用之间共享数据; 4如何创建一个拥有不同背景色数字时钟

3.4K20

Swift3.0 - 设计技巧_扩展深入

本机重点探讨扩展写法 需求:给UIView 扩展一个获取width 和height 属性 extension UIView{ var width:CGFloat{ return...,或者系统框架以后也增加了一个这样属性,你写这个就会报冲突错误 有人说好办,加个前缀,我们继续改进一下 extension UIView{ var os_width:CGFloat{...,当然Swift 有自己更优雅写法,过程有点复杂,我按照步骤写 第一步 创建一个泛型结构体,里面定义一个属性,接受传进来值 struct Auto{ let base:Base...为UIView 类型对象扩展属性,这个时候系统会自动推断Base 为UIView 类型,所以能调出frame属性 第五步 UIView 实现协议 extension UIView:Compatible...{ } 完成上面的五步,就完成了我们扩展,看一下如何调用 print(self.view.os.width) print(self.view.os.height) 运行结果: 375.0 667.0

32130

Swift开发规范-修订版

最近利用了空余时间,对之前版本进行了完善,加入了代码示例及编译效率规约等等,并且考虑到读者对某些规约有些疑惑,也为部分规约增加了说明,推出新版本--《Swift开发规范-修订版》。...; 正例:UIView+Frame.swift / MessageViewController+Request.swift / UIViewExtensions.swift 【推荐】工程中文件夹或者...,按照按照参数多少从少到多排序; 3、返回值 -> 两遍增加空格; 4、参数名与类型之间空格; 5、如果大括号内为空,则直接简写为{},括号内不换行; 6、if 后面的 else\else if...【推荐】数组合并建议使用 append 方法不是 + 号拼接; var resultArr = ["1", "2"] let extraArr = ["3", "4"] 正例:resultArr.append...我们通过配置文件可以控制启用或者关闭相应规则,具体使用规则参照对应仓库 REAMME.md 文件。 相关规范 Swift 官方 API 设计指南 Google 发布 Swift 编码规范

1.7K50

干货 | 携程酒店iOS动态View探索

在不增加人手情况下,要想同时进行业务迭代和CRN转换,会有点力不从心。 如果硬转,周期会很长。...以携程酒店主流程页面之一订单详情页为例,在没有额外增加人手情况下,前后花了几个月时间,才陆陆续续完成了90%功能转CRN,过程尤为艰辛。...订单详情页是主流程页面中相对简单,如果要转酒店详情页,光是几百行ViewModel就已经人望而却步了。...对此,我们考虑能不能采用一种Native和CRN共存方式,这样既可以保留Native业务逻辑,又可以在UI层面做到灵活应变。...最关键是,可以分模块开发,不用像转CRN那样必须整个页面一起上。

75420

Swift 3.0 探索之 UILabel

开篇 最近闲来无事,看看Swift3.0,发现和我认识1.0有很大不同了,如果不学习一下估计会落伍了,所以探究一下 Swift 在开发中使用(当然目前是初级水平,一起进步嘛,也欢迎菜鸟,大神一起探讨...属性为true时候 上面设置lineBreakMode属性将失效 myLabel.adjustsFontSizeToFitWidth = true //当文字超出标签宽度时,自动调整文字大小...myLabel.numberOfLines = 0 //返回int 类型 设置0没有行数限制 1、2、3、4对应1、2、3、4行 设置高亮属性 myLabel.isHighlighted...属性时候,设置text将失效,其textColor、font等属性将保留没有被改变(OC Swift通用属性)**** //富文本设置 let attributeString...图2.png 好了,今天差不多就这些,明天继续看,看一个最简单UIView吧,代码我稍后会上传群文件(QQ群 139852091)网盘已经git,明个见!

78730

iOS动态View探索

在不增加人手情况下,要想同时进行业务迭代和CRN 转换,会有点力不从心。 如果硬转,周期会很长。...以携程酒店主流程页面之一订单详情页为例,在没有额外增加人手情况下,前后花了几个月时间,才陆陆续续完成了90% 功能转CRN,过程尤为艰辛。...订单详情页是主流程页面中相对简单,如果要转酒店详情页,光是几百行ViewModel 就已经人望而却步了。...,不管你是大牛还是小白都欢迎入驻 对此,我们考虑能不能采用一种Native 和CRN 共存方式,这样既可以保留Native 业务逻辑,又可以在UI 层面做到灵活应变。...最关键是,可以分模块开发,不用像转CRN 那样必须整个页面一起上。

76240

iOS透明导航栏平滑过渡(进阶版)引实现过程结

很多App做法其实比较粗糙,类似于我在传送门:iOS导航栏切换界面时隐藏和显示中做法,需要导航栏透明时,直接将导航栏隐藏起来。...设置导航栏背景透明度 导航栏上应该是有很多view,我们要做是只背景透明,保留标题、返回按钮。iOS没有直接给我们提供对于导航栏背景view访问途径,那么我们只能自己来找了。...,导航栏透明度是直接跳变: 而我们想要是像QQ一样从完全透明到不透明之间有一个随着滑动手势变化透明度渐变效果,这样是最好转场效果了。...: 有一个参数就是界面滑动过程百分比,那么我们获取上一个界面的导航栏透明度、下一个界面的导航栏透明度、以及滑动进度,通过很简单数学计算就可以得出当前进度应该对应透明度是多少了,这里也可以看出我们给...,我们可以在 UINavigationController Delegate 中添加一个处理,监控松手后时自动完成返回还是取消返回操作,同时使用 UIView 动画(关于 UIView 动画可以看我这篇文章

2.9K40

16道面试官必问你必须会iOS面试题

题目 4:有没有这样一个需求场景,block会产生循环引用,但是业务又需要你不能使用 weak self? 如果有,请举一个例子并且解释这种情况下如何解决循环引用问题。...不过最终,由于 iPhone 出现,Objective-C 迎来了第二春,在 TOBIE 语言排行榜上,从 20 名开外一路上升,排名曾经超越过 C++,达到了第三名(下图),但是随着 Swift 出现...所以无法在运行时动态给对象增加成员变量 注:需要特别说明一下,通过 objc_setAssociatedObject 和 objc_getAssociatedObject方法可以变相地给对象增加成员变量..., Swift 语言,连 int 变量也是对象)。...例如: 输入: (2 -> 4 -> 1) + (5 -> 6 -> 1)输出: 7 -> 0 -> 3 本题 Swift 代码模版如下: private class ListNode {

2.2K50
领券