在 UIImageView 上添加渐变

2023-11-21

我正在尝试在我的上添加一个子层UIImageView但它不起作用。

  • 我有一组 10 张图像,命名为photo0 to photo9我显示 它有一个5秒的计时器。
  • 出口shanghaiImage是我的背景

我想在这个马蒂的顶部添加一个渐变,例如:透明(顶部)到黑色(底部)。

谢谢您的帮助 :)

这是我在 Swift 3 中的代码。

这部分很好:

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var shanghaiImage: UIImageView!

// beginning index
var _curentImageIndex:Int = 0
// number of images
let NUMBER_OF_IMAGES:Int = 10
// creation of the Timer
var _uiTimer:Timer?


override func viewDidLoad() {
    super.viewDidLoad()
    showPhoto(atIndex: _curentImageIndex)
}

// MARK TIMER ---------

func selectNewTimer(){
    if let existingTimer:Timer = _uiTimer{
        existingTimer.invalidate()
    }
    _uiTimer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(ViewController.showNextImage), userInfo: nil, repeats: true)
}

问题就出在这里。我不知道为什么它不起作用。

// MARK PHOTO ---------
func showPhoto(atIndex index:Int){

    let photoName:String =  "photo\(index)"
    shanghaiImage.image =  UIImage(named: photoName)

    let gradient = CAGradientLayer()
    gradient.frame = shanghaiImage.bounds
    let startColor = UIColor(colorLiteralRed: 0, green: 0, blue: 0, alpha: 1)
    let endColor = UIColor.black

    gradient.colors = [startColor, endColor]
    shanghaiImage.layer.insertSublayer(gradient, at: 0)


    _curentImageIndex  =  index
    selectNewTimer()
    }

func showNextImage() {
    var nextPhotoIndex:Int = _curentImageIndex + 1
        if nextPhotoIndex >= NUMBER_OF_IMAGES {
            nextPhotoIndex = 0
        }
    showPhoto(atIndex: nextPhotoIndex)
}


override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
}

我建议放一个UIView与顶部的渐变UIImageView:

@IBOutlet weak var shanghaiImage: UIImageView!

let view = UIView(frame: profileImageView.frame)

let gradient = CAGradientLayer()

gradient.frame = view.frame

gradient.colors = [UIColor.clear.cgColor, UIColor.black.cgColor]

gradient.locations = [0.0, 1.0]

view.layer.insertSublayer(gradient, at: 0)

shanghaiImage.addSubview(view)

shanghaiImage.bringSubview(toFront: view)

Objective-C:

UIView *view = [[UIView alloc] initWithFrame: profileImageView.frame];

CAGradientLayer *gradient = [[CAGradientLayer alloc] init];

gradient.frame = view.frame;

gradient.colors = @[ (id)[[UIColor clearColor] CGColor], (id)[[UIColor blackColor] CGColor] ];

gradient.locations = @[@0.0, @1.0];

[view.layer insertSublayer: gradient atIndex: 0];

[shanghaiImage addSubview: view];

[shanghaiImage bringSubviewToFront: view];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 UIImageView 上添加渐变 的相关文章

  • 移动 Safari 中的文件上传和 EXIF

    正如这些问题中所指出的 在某些情况下 iOS 上上传的照片的地理位置和其他 EXIF 元数据会被删除 在 safari 中 https apple stackexchange com questions 326789 gps exif fr
  • iOS 上每个选项的带有图像的操作表

    有没有办法在 iOS 上将图像添加到操作表中 与苹果在应用程序商店或苹果音乐应用程序上所做的一样 我对苹果文档的基本搜索表明我没有在操作表中子类化或添加子视图 UIActionSheet 并非设计为子类化 也不应向其层次结构添加视图 苹果文
  • ios 8 核心数据崩溃

    保存时 CoreData 发生崩溃 2014 09 16 09 51 58 273 My app 2678 105246 Terminating app due to uncaught exception NSInvalidArgument
  • 如何保存 1 个 xcode 项目中的所有构建设置并在其他 xcode 项目上使用它们?

    我使用 xcode 4 5 和 cordova phonegap 来构建我的应用程序 我投入了大量时间来获取适合我的 Xcode 项目的构建设置 并且我想在我正在构建的多个应用程序上重用这些设置 我正在寻找是否有一种快速的方法来导出这些设置
  • cordova-plugin-whitelist 适用于 Android,但不适用于 iOS (Phonegap Build)

    我正在开发一个用 Cordova 封装并使用 Phonegap Build 构建的 JavaScript 应用程序 我们包括cordova plugin whitelist来自我们构建中的 npm 并添加了
  • 删除后台 moc 中的对象然后在主 moc 中刷新它会导致 NSFetchedResultsController 更新崩溃

    我遇到了一个NSObjectInaccessibleException我无法理解 Terminating app due to uncaught exception NSObjectInaccessibleException reason
  • 在 iOS 中管理和解除多个视图控制器

    我是一名 iPhone 新手程序员 在开发我的第一个游戏 应用程序时 我为自己提出了一个问题 创造了一个问题 我对此进行了研究 并认为我已经看到了答案 但我不明白如何使它们适用于我的应用程序 我有一个游戏 有几个视图控制器 欢迎 玩 高分
  • 使用 JavaScript 从 URL 变量读取来加载不同的 CSS 样式表

    我试图在我的 WordPress 博客上使用两个不同的样式表 以便在通过 Web 访问页面时使用一个样式表 而在通过我们的 iOS 应用程序访问博客内容时使用另一个样式表 现在 我们将 app true 附加到来自 iOS 应用程序的 UR
  • 为什么我们在 @synchronized 块中传递 self ?

    我猜 synchronized 块不依赖于对象 而是依赖于线程 对吗 既然如此 我们为什么要传递 self 呢 synchronized是语言提供的用于创建同步作用域的构造 因为使用简单的全局共享互斥锁效率非常低 因此序列化每个单独的互斥锁
  • 如何在 RestKit 中为同一类提供两条发布路线

    由于我无法弄清楚如何为同一个类设置两个不同的 POST 资源路径 因此我尝试手动创建 RKObjectLoader 请求 但它似乎不断发送 GET 请求而不是 POST 即使我已将方法设置为邮政 这是我的代码 User user User
  • WebGL iOS 渲染为浮点纹理

    我正在尝试在 iOS Safari 上的 WebGL 中渲染浮点纹理 而不是在本机应用程序中 我已经设法让 iOS 读取手动 例如从 JavaScript 创建的浮点纹理 但是当我创建浮点类型的帧缓冲区并使用 GPU 渲染到其中时 它不起作
  • 在 Interface Builder 中的资产目录上使用图像

    是否可以直接在界面生成器上使用添加到资产目录中的图像 这是怎么做到的 在 UIImageView 属性上 我看不到任何引用资产目录上任何图像的选项 Import the images into the xcassets folder 单击右
  • UIBezierPath 的起始和结束角度?

    我在 iOS 中使用如下代码编写了半圆UI贝塞尔路径 and CAShape层 clockWiseLayer CAShapeLayer alloc init CGFloat startAngle M PI 2 CGFloat endAngl
  • 切换到工作区并在 Xcode 中添加 CocoaPods 后提交 git 吗?

    我刚刚在 Xcode 5 中将 CocoaPods 添加到我当前的项目中 当然 CocoaPods 创建了一个工作区 并且我已在 Xcode 中启动了该工作区 我在工作区中看到了我的项目和 Pods 项目 我的项目从第一天起就处于源代码控制
  • swift 中的负数模

    负数模如何在 swift 中工作 当我执行 1 3 时 它给出 1 但余数是 2 其中有什么问题 雨燕余数运算符 计算余数 整数除法 a b a a b b where 是截断整数除法 在你的情况下 1 3 1 1 3 3 1 0 3 1
  • 如何使用自签名证书为 TLS 创建 iOS NWConnection?

    我正在尝试将 Apple 的新 NWConnection 类用于我的 MQTT 客户端 为了进行测试 我需要能够创建到本地测试代理的 TLS 连接 该代理具有自签名证书 到目前为止 我只是使用以下命令设置连接 self connection
  • 在WKWebview中设置useragent

    如何在 WKWebView 中设置自定义用户代理字符串 我正在尝试嵌入我的应用程序的版本 以便我的服务器端可以看到可用的功能 我找到了以下方法 let userAgent MyApp 1 33 7 request setValue user
  • 打印附加结构(swift 4)

    我有三个 textifled 用于将数据附加到结构中 如何打印我附加的内容 现在我收到一条错误消息 import UIKit class ViewController UIViewController IBOutlet var c UITe
  • UIImage:如何获取网站选项卡图标

    我正在开发一个 RSS 阅读器 我需要获取每个提要的图标 例如 如果我的提要是 google com 我想获取 G 图标并将其放入 UIImage 或其他内容中 关于如何实现这一目标有什么想法吗 最简单的方法是使用 Google NSStr
  • 具有多种自定义单元格类型的 RxSwift 表视图

    我想知道是否有任何代码示例RxSwift当我可以在一个表视图中使用多个自定义单元格时 例如 我有两个部分 第一部分有 10 个单元格 类型为CellWithImage标识符和第二部分有 10 个带有类型的单元格CellWithVideo标识

随机推荐

  • 为什么projectableNodes是any[][]?

    我玩过 ViewContainerRef createComponent 我想知道为什么参数projectableNodes是一个any 不幸的是 到目前为止 这个参数还没有被记录下来 在这个二维数组中传递什么 祝愿 曼弗雷德 因为我们可以
  • Meteor 服务器端 /public 的路径是什么?

    在 Meteor 客户端 我知道项目公共目录中的文件是在 处引用的 服务器端如何引用它们 我正在尝试使用 fs readdir 获取目录列表 但我不知道如何构造路径以到达相当于客户端 images gallery 的服务器端 有什么建议吗
  • ASP.NET 5 (MVC6) 中请求 BinaryRead

    我让这段代码在 ASP NET MVC 5 中工作 但我无法使其在 ASP NET MVC 6 ASP NET 5 中工作 有人能帮我吗 public EmptyResult PayPalPaymentNotification PayPal
  • cordova-plugin-media 回调方法

    我正在使用 cordova media plugin 1 0 1 在 Ionic 移动应用程序中 我正在使用该插件来播放音频文件 我可以使用以下方法让它播放 var media cordovaMedia newMedia fileToPla
  • php 中的 rand() 与时间相关吗?

    让我们解释一下我的意思 前段时间 在用c 编写程序时 犯了以下错误 int Randomize Random r new Random return r Next 0 10 在c 中 这是一个错误 因为连续调用多次 该函数将返回相同的值 这
  • 角度重定向到登录页面

    我来自 Asp Net MVC 世界 其中尝试访问未经授权的页面的用户会自动重定向到登录页面 我正在尝试在 Angular 上重现这种行为 我遇到了 CanActivate 装饰器 但它导致组件根本不渲染 没有重定向 我的问题如下 Angu
  • 使用 Windows 的 R 中的文件路径问题(“字符串中的十六进制数字”错误)

    我在 Windows 上运行 R 并在桌面上有一个 csv 文件 我按如下方式加载它 x lt read csv C Users surfcat Desktop 2006 dissimilarity csv header TRUE 但 R
  • “jQuery”变量如何成为函数和对象?

    例如 当您使用jQuery someDiv 这是一个函数 但你也可以使用jQuery ajax 这怎么可能 在 JavaScript 中 函数本身就是对象 var x function x foo bar console log x foo
  • 如何从 Perl 脚本内部设置适用于其子脚本的 ulimit?

    我有一个 Perl 脚本 可以执行各种安装步骤来为我们公司设置开发盒 它运行各种shell脚本 其中一些脚本由于低于要求而崩溃ulimits 具体来说 堆栈大小 s就我而言 因此 我想设置一个ulimit这将适用于所有脚本 children
  • 为什么我的 this.props.navigation.setParams 不起作用?

    我正在 selectedStyleIds 上设置整数数组 为什么我的 this props navigaion setParams 不起作用 setSelectedStyleIds selectedStyleIds gt const act
  • Quinlan C4.5算法中如何计算数值属性的阈值?

    我试图找出 C4 5 算法如何确定数字属性的阈值 我研究过但无法理解 在大多数地方我都找到了这些信息 首先根据所考虑的属性 Y 的值对训练样本进行排序 这些值的数量有限 因此让我们按排序顺序将它们表示为 v1 v2 vm vi 和 vi 1
  • 如何仅在一个 Ionic 平台上添加插件?

    我正在使用优秀的后台地理定位插件在一个 Ionic 项目上 不幸的是 Apple 认为我的用法不够有效 所以我必须弄清楚如何仅在 Android 上添加此插件 我无法在代码级别修复此问题 因为该插件的存在将我的应用程序标记为需要 info
  • 在子集函数和逻辑运算符中使用多个条件

    如果我想在R中选择数据的子集 我可以使用subset函数 我想对符合几个标准之一的数据进行分析 例如某个变量是 1 2 或 3 我试过 myNewDataFrame lt subset bigfive subset bigfive bf11
  • OpenCV cv2.fillPoly 与 cv2.fillConvexPoly:多边形顶点数组的预期数据类型?

    我有以下代码 import cv2 import numpy ar numpy zeros 10 10 triangle numpy array 1 3 4 8 1 9 numpy int32 如果我像这样使用 cv2 fillConvex
  • 如何通过 TypeScript 在 Vue.js 中使用 Provide/Inject

    我将 Vue js 与 TypeScript 一起使用vue 属性装饰器包裹 根据文档 理论上我可以做这样的事情 import Component Inject Provide Vue from vue property decorator
  • javascript 将事件处理程序绑定到水平滚动

    javascript中有没有一种方法可以将事件处理程序绑定到水平滚动 而不是用户水平和垂直滚动时触发的通用滚动事件 我想仅当用户水平滚动时触发事件 我四处寻找这个问题的答案 但似乎找不到任何东西 Thanks 附 如果我错误地使用了一些术语
  • “AnonymousUser”对象没有属性“backend”

    使用 django socialregistration 出现以下错误 AnonymousUser object has no attribute backend How 我点击 Facebook 连接网址 这让我使用 Facebook 并
  • 有条件地调用成员函数而不使用临时变量

    我有一个返回对象的表达式 并且仅当某个布尔条件为 true 时 我才想在结果对象上调用方法 我想在 val 中获取结果 无论是对象 还是调用对象上的方法的结果 一种方法是使用临时变量 如下例所示 其中List 3 1 2 是返回对象的 可能
  • 在渲染 React hooks 之前等待 API 调用数据

    我进行 API 调用 看起来 React 继续构建一个没有数据的表 从而抛出以下错误 Uncaught TypeError Cannot read property map of undefined 这就是我正在做的 useEffect 非
  • 在 UIImageView 上添加渐变

    我正在尝试在我的上添加一个子层UIImageView但它不起作用 我有一组 10 张图像 命名为photo0 to photo9我显示 它有一个5秒的计时器 出口shanghaiImage是我的背景 我想在这个马蒂的顶部添加一个渐变 例如