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

UIView alpha在第一次调用更改后不会更新。(Swift 4.2)

UIView alpha属性用于设置视图的透明度,取值范围为0.0到1.0之间,其中0.0表示完全透明,1.0表示完全不透明。

在Swift 4.2中,当我们第一次调用UIView的alpha属性进行更改时,视图的透明度不会立即更新。这是因为UIView的alpha属性是一个动画属性,它默认会使用默认的动画时间(0.2秒)来进行渐变动画。因此,第一次更改alpha属性后,我们需要等待一小段时间才能看到效果。

如果我们希望立即更新视图的透明度,可以使用UIView的UIView.animate(withDuration:animations:)方法来创建一个动画块,并在其中设置alpha属性。例如:

代码语言:txt
复制
UIView.animate(withDuration: 0) {
    myView.alpha = 0.5
}

这样,我们就可以立即更新视图的透明度,而不需要等待默认的动画时间。

关于UIView alpha属性的更多信息,可以参考腾讯云的文档:UIView alpha属性

注意:本回答中没有提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商,如有需要,请自行查阅相关资料。

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

相关·内容

setNeedsLayout和layoutIfNeeded看我就懂!

请记住,此方法强制立即布局并显示更新。您可能会想知道为什么我们进行约束更改之前呢。苹果认为这是一个最佳做法,以确保任何以前的更新等待更新周期的完成,所以我已经添加了它。...相反,setNeedsLayout方法返回,视图只是列表中,以在下一个更新周期中进行更新。净效果是动画块中不会发生动画,因为该块中的视图没有更改。 效果如下: ?...但是,我们没有动画块的上下文中进行视图更新,也就是说刚好是一个周期,所以它似乎是立即的,跟没有UIView.animate这段代码效果是一样的。...** 因此,由于我们的代码已经标记该视图需要通过setNeedsLayout进行布局更新,所以是更新周期中立即启动视图更新,而不是从更新周期开始约束更改和帧移动的动画。...) 如果要立即刷新,要先调用[view setNeedsLayout],把标记设为需要布局,然后马上调用[view layoutIfNeeded],实现布局 视图第一次显示之前,标记总是“需要刷新”的

2.7K90
  • 教你如何自定义AlertView

    本文就介绍如何自定义alertView,看完你就懂得制作属于自己的alertView了 一、创建DWAlert.swift 创建一个类名为DWAlert.swiftclass DWAlert:...注意:angle值为M_1_PI / 1.5,只是个参考,您可以换其他的值,试试效果 4、完成动画调用父类的removeFromSuperview移除alertView 四、实现alertView...坠落效果 willMove(toSuperview newSuperview: UIView?)...里面实现,该方法会在当alertView即将加入主窗口时被系统自动调用,详情请看UIView不可不知的秘密 override func willMove(toSuperview newSuperview...五、使用DWAlert ViewController创建一个按钮,并添加一个点击事件ClickMe,方法里面创建alertView @IBAction func ClickMe(_ sender:

    1.3K50

    UIKit Dynamics:开始入门 —《Graphics & Animation系列一》

    准备开始 ViewController.swift 添加如下代码viewDidLoad: let square = UIView(frame: CGRect(x: 100, y: 100,...这些属性必须是可选的,因为我们没有init方法中初始化它们。 此时可以使用隐式解包的optionals,因为我们知道这些属性初始化不会为零。 可以防止每次使用的时候需要!来解包。...碰撞行为与其相关的每个项目周围形成“边界”; 这将它们从可以通过彼此的对象变成更坚实的对象。 更新前面的图,可以看到碰撞行为现在与两个视图相关联: ?...看不见的边界和碰撞 将碰撞行为初始化更改回其原始形式,以便仅识别方块: collision = UICollisionBehavior(items: [square]) 紧随此行,添加以下内容:...仍然ViewController.swift中,通过更新类声明来采用UICollisionBehaviorDelegate协议: class ViewController: UIViewController

    1.9K30

    谈谈 Autolayout

    layoutSubViews: 当 View 及其所有子视图的 frame 发生改变的时候,会调用 layoutSubviews,所以需要更新 frame 来重新定位或更改大小时重载它。...当 layoutSubviews 完成 view 的所有者 view controller 上,会触发 viewDidLayoutSubviews 调用。...告知页面需要更新,但是不会立刻开始更新视图,视图会在下一个 runloop 中更新调用 setNeedsLaylout 方法视图被重新绘制并布局之间会有一段任意时间的间隔。...如果希望立刻生成新的 frame 需要调用此方法,利用这点一般布局动画可以更新布局直接使用这个方法让动画生效。...通常在 updateConstraints 方法中实现必须要更新的约束,设置或者解除约束、更改约束的优先级或者常量值,或者从视图层级中移除一个视图时都会设置一个内部的标记 update constarints

    70620

    iOS14开发-入门知识

    开发语言 Swift 或者 Objective-C(本教程基于 Swift 5.x)。 开发者账号 个人 99 $/年 公司 99 $/年 企业 299 $/年 iOS系统四个层次 ?...alpha:透明度(0.0 ~ 1.0)。 tag:标记(Int 类型,默认等于0),设置,可以通过所在容器View.viewWithTag方法拿到这个视图。 title:标题。...alpha <= 0.01。 没有设置背景色、没有设置内容。 可能是文字颜色和背景色一样。 UIView常见方法 addSubview:添加视图到父视图。...与 Storyboard 中的 UIView 产生的事件建立联系。 当相应的事件发生时,方法就会被调用。 只有继承自 UIControl 的 UI 控件可以拖拽 @IBAction。...经典的连线错误 UIView 连线删除了类中的 @IBOutlet 或者 @IBAction。 UIView 连线改变类中的 @IBOutlet 或者 @IBAction 名字。

    2.9K40

    iOS 多国语言本地化与App内语言切换(Swift)写在前面前言准备工作storyboardxib本地化纯代码本地化语言切换后记

    很简单 只要勾勾选选就可以了 这边只涉及到一个更新的问题 通过 ibtools命令 可以使storyboard/xib生成新的代码 首先cd 到stroyboard/xib 目录 执行ibtool..., 具体的en和zh中写具体内容,这时Base的作用就是为了方便自动生成代码而已了。...替换成自定义的Bundle enum Language : String { case english = "en" case chinese = "zh-Hans" } /** * 当调用...onLanguage替换掉mainBundle为当前语言的bundle */ class BundleEx: Bundle { override func localizedString...文件路径(根据个人习惯修改) localizedFile="${SRCROOT}/Public/LocalizedUtils.swift" # 将localizable.strings中的文本转为swift

    2.4K31

    《Motion Design for iOS》(十七)

    这里是和上面一样的功能,但是是Swift而不是Objective-C写的。你可以打开Balls In Swift Xcode工程导出这个例子的Swift版本。...Core Animation会自动球的当前尺寸值和你的最终值之间更改来产生一个平滑的动画。这一次,我希望动画能最终让球变成两倍大,所以我设置了球的transform属性为一个新值。...最后,我们不需要在动画完成运行任何代码,所以我么你设置完成(completion)的安排为NULL。这里是你再次运行代码后会看到的样子。GIF会回到原始的样子但实际上球并不会。...这里是Swift下同样的代码: UIView.animateWithDuration(0.5, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut...平移的更改会将视图上、下、左、右移动。我们的例子中,我们会将它右移75个像素。

    95920

    AVKit框架详细解析(四) —— 基于AVKit 和 AVFoundation框架的视频流App的构建

    AVPlayer 是 iOS 上播放视频的核心。 播放器对象可以启动和停止您的视频,更改其播放速率,甚至可以调高和调低音量。 将播放器视为能够一次管理一个媒体资产的播放的控制器对象。..., context: Context) { } 1) 当 SwiftUI 需要一个新的 UIView 实例时,它会调用 makeUIView(context:)。...3) SwiftUI 需要更新底层 UIView 时会调用此方法。 现在,将其留空。...如果你反过来做,双击监听器将永远不会调用。 再次构建并运行,您将能够点击和双击来播放剪辑的速度和音量。 这表明添加自定义控件以与自定义视频视图交互是多么容易。...您会在左上角看到画中画按钮……否则不会! 缺点是,撰写本文时,iOS 14.5是可用的最新版本,VideoPlayer 的 SwiftUI 视图未显示画中画按钮。

    7K10

    谈谈Swift的extension

    今天的重点是,Swift也可以这么写。 首先我们要明确,Ruby之所以可以这么写是因为它是一个纯面向对象的语言,Ruby的世界中,一切皆对象,所有的事物都有一个共同的祖先——Object。...而在Swift中,Int是一个struct(结构体),并不是个class。但是Swift中的struct与别的语言中的struct不同的是,struct内部也可以定义方法。...0.9, alpha: 0.5) self.layer.transform = CATransform3DMakeScale(1, 1, 0) UIView.animateWithDuration...因为我项目中的Button是一个自定义的贪婪Button,只要点击Button的父视图就会响应点击事件,所以是Button的superview调用了animateWhenClicked,这也是我把这个动画扩展到...UIView而不是UIButton的原因。

    52720

    动画分析步骤“三步曲”

    表1 6S下QQ图标移动效果:QQ图标x、y坐标随时间变化关系表 3.动画结束阶段 动画效果结束之后没有触发新的回调事件,只是更新了当前登录按钮的最后位置,所以图片最终停留在视图层的中间位置。...程序接着调用viewWillAppear方法,这是视图展现之前需要调用的方法。而最后调用viewDidAppear,表明所有的视图已经可见。...: TimeInterval, animations: @escaping () -> Swift.Void) 该方法属于类方法,类名可以直接调用,表明为当前的UIView添加一个动画效果,它的每个参数的含义如下...2.透明度属性:alpha(透明度属性、范围0-1、浮点型) UIViewalpha透明度属性也可以用作动画效果。当alpha为0时,表明UIView已经隐藏,当alpha为1时UIView显示。...结合这一特征可以通过修改alpha动画开始、结束时的值,实现UIView的淡入淡出效果。

    89010

    【iOS 开发】从 setNeedsLayout 说起

    UIKit 为 UIView 提供了这些方法来进行视图的更新与重绘: public func setNeedsLayout() public func layoutSubviews() public func...frame、bounds、alpha 等属性 -调用 setNeedsLayout 方法以标记该视图...(或者它的子视图)为需要进行布局更新 -调用 setNeedsDisplay 或者 setNeedsDisplayInRect: 方法以标记该视图...任何已经更新的视图会与应用余下的可视内容组合在一起,同时被发送到图形硬件去显示 图形硬件将已解释内容转化到屏幕上 ---- 方法调用逻辑 在上面的过程中,我们可以接触到文章开头提到的方法,他们的调用逻辑是这样的...当然你可以给多个 UIView 设置 setNeedsLayout,然后当下一个 View Drawing Cycle 到来时,多个 UIView 的视图会一同更改布局。

    70710

    View编程指南(四)

    UIKit中,动画是使用UIView对象执行的。 view支持一组涵盖许多常见任务的基本动画。...因此,您可以使用这些方法创建一个包含对多个view进行更改的动画 [UIView animateWithDuration:1.0 animations:^{ firstView.alpha...= 1.0; } completion:nil]; }]; } 重要提示:当涉及该属性的动画已在进行中时,更改属性的值不会停止当前动画...因此,对于view转换,如果你初始化转换时保持活动,那么VC转换结束时也是活动的 修改View的subviews 更改view的subview允许您对view进行适度更改。...但是,如果您需要动画其他更改,则可以调用方法时包含UIViewAnimationOptionAllowAnimatedContent选项。包含该选项可防止view创建快照,并直接动画化所有更改

    65310

    Swift开发规范-修订版

    Swift开发规范》后续更新不会再另发文章,后续更新地址为:《Swift开发规范》(https://coder-star.github.io/iOS/%E8%A7%84%E8%8C%83/Swift%...如果不会,标记为 final;说明:Swift 在编译时会优化 final 修饰的方法,派发方式可能由函数表派发优化为直接派发。...【推荐】尽可能利用访问限制修饰符控制类、方法等的访问限制,遵循开闭原则;说明:如确定某方法或变量不应该被外部调用,就使用private进行修饰,编译程序阻止外部不合适的调用。...同时private Swift 中会被隐式加上final修饰,从而得到优化。...; 【推荐】解包时推荐使用原有名字,前提是解包的名字与解包前的名字作用域上不会形成冲突; 【推荐】实现每个协议时,单独的 extension 里来实现; 代码示例(代码不具有业务含义,只是简单的格式规约示例

    1.7K50

    WWDC - SwiftUI - 初恋般的感觉

    第四步 把Hello World更改为Hello SwiftUI! 当你修改文案,SwiftUI会自动更新视图。 ? 自定义Text View 你有两种方式来自定义TextView。...代码并不会关心你用什么工具,它始终能够保持最新状态 接下来,你将通过inspector来自定义Text View 第一步 preview画布上,按住Command键+点按Text文本框,这时候inspector...SwiftUI中要使用UIView或者其子类,你需要让你的view遵循UIViewRepresentable协议。SwiftUIWatchKit和AppKit同样声明了类似的协议 ?...第一是UIView(context:)来创建MKMapView。第二个updateUIView(_:context:)来更新view。...第一步 工程导航区,选择ContentView.swift文件。 第二步 在这三个text view控件外面,再嵌入一个VStack视图。

    3.8K10

    【Dev Club分享】JSPatch成长之路

    要让这条语句 JS 环境中可以执行, JS 的语言规则下,UIView 必须是一个对象,alloc 必须这个对象的一个方法。 也就是说要像这样定义才可以执行: ?...UIView 必须是一个对象这点没问题,调用前定义就可以,但 UIView 的方法必须在调用前定义就很糟糕,这意味着如果你想调用任意 UIView 的方法,你就需要提前把所有 UIView 的方法都找出来...还是以调用 UIView 的 alloc 方法为例,这个语句执行之前会被替换为调 UIView 的 __c 方法,把 “alloc” 作为字符串参数穿进去, __c 方法里判断调用UIView...正则替换无论调用 OC 的什么方法,都不会有语法错误,因为都变成调用这个 __c 方法,在这个 __c 方法里做处理去 OC 层调用相应的方法就行了。...Swift 相关问题在 wiki 里有提到: 只支持调用继承自 NSObject 的 Swift 类 继承自 NSObject 的 Swift 类,其继承自父类的方法和属性可以 JS 调用,其他自定义方法和属性同样需要加

    1.6K40

    深入了解 iOS 的初始化

    作者 | Daniels 初始化 iOS 里面,无论是 Objective-C 还是 Swift,类(结构体、枚举)的初始化都有一定的规则要求,只不过 Objective-C 中会比较宽松,如果不按照规则也不会报错...所以当调用[[UIView alloc] init]时,-init里面必然调用了-initWithFrame: 当存在一个新的指定初始化器的时候,推荐方法名后面加上NS_DESIGNATED_INITIALIZER...(有值) • 便利初始化器必须调用其他初始化器,使得最后肯定会调用指定初始化器 展开而来的多条规则: • 无论 Objective-C 还是 Swift 中,都可以有多个指定初始化器和多个便利初始化器...必须重写旧的定初始化器,在里面调用新的指定初始化器 • Swift 中,初始化的时候需要保证类(结构体、枚举)的所有非可选类型属性都会有值 • Swift 中,必须在初始化完成才能调用实例属性...,那么就不会继承父类的指定初始化器和便利初始化器;但是如果重写了父类的所有指定初始化器,就会继承父类的便利初始化器 • Swift 中,子类可以把父类的指定初始化器重写成便利初始化器 • Swift

    1K10

    小问题记录

    更新的流程是这样的:更新时,先在新的路径里安装新程序,然后把旧程序文件夹里的配置文件之类的文件拷贝到新的路径里去,然后删除旧程序 所以,如果数据库里保存的是绝对路径,那么软件会找不到文件。...reference init:不会调用layoutSubviews addSubview::被添加的view1、调用这个方法的view2、view2的所有子view都会调用layoutSubviews...setFrame:只有view设置frame且尺寸参数有不同的情况下调用 滑动UIScrollView时,scrollView和其父view会调用 旋转屏幕会在viewController的根view...生成UIImage reference reference2 ---- UIColor 给ClearColor添加alpha reference - (void)setBackgroundColor:...里经常用 #pragma mark - xxxx 来分隔代码 Swift里用的是 // MARK: - xxx

    3.4K21
    领券