如何快速制作不同形状的图像视图

2023-12-02

enter image description here

我想将普通的ios图像视图更改为下面的图像形状(如弧线)


您可以使用它来根据您的要求设计形状,您可以向路径添加额外的线条,以防您需要修改贝塞尔曲线路径。创建一个自定义 UIImageView 类,并将故事板中的图像视图子类化为您的自定义类。

import UIKit

class customImageView: UIImageView {


    // Only override drawRect: if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    //    override func drawRect(rect: CGRect)
    //    {
    //
    //
    //    }


    override func setNeedsLayout() {
        let path = UIBezierPath()
        path.moveToPoint(CGPoint(x: self.frame.size.width/2, y: self.frame.size.height))
        path.addLineToPoint(CGPoint(x: self.frame.size.width, y: self.frame.size.height/2))
        path.addLineToPoint(CGPoint(x: self.frame.size.width/2, y: 0))
        path.addArcWithCenter(CGPoint(x: self.frame.size.width/2, y: self.frame.size.height/2), radius: self.frame.size.width/2, startAngle:-CGFloat(M_PI_2), endAngle: CGFloat(M_PI_2), clockwise: false)

        path.moveToPoint(CGPoint(x: self.frame.size.width/2, y: self.frame.size.height))
        path.closePath()
        UIColor.redColor().setFill()
        path.stroke()
        path.bezierPathByReversingPath()
        let shapeLayer = CAShapeLayer()
        shapeLayer.frame = self.bounds
        shapeLayer.path = path.CGPath
        shapeLayer.fillColor = UIColor.redColor().CGColor
        self.layer.mask = shapeLayer;
        self.layer.masksToBounds = true;
    }

}

如果您想通过代码添加图像,请像这样使用它

 func shapeImage()
    {
        let customImgView = customImageView()
        customImgView.image = UIImage(named: "Image")
        customImgView.frame = CGRectMake(0, 0, 250, 250)

        self.view.addSubview(customImgView)
    }

这是左侧的实际图像,右侧是根据您的要求在模拟器中整形后的图像

enter image description here

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

如何快速制作不同形状的图像视图 的相关文章

随机推荐

  • 使用中心插件将 jQuery 中心元素置于视口

    我目前正在使用 jQuery center 插件来居中我的 div 元素 到目前为止 它的工作范围已经达到了将其居中到包含父容器的位置 我想要它做的是将其居中到当前浏览器视口中心 那怎么办呢 我的设置是一个简单的链接 单击时会弹出一个 di
  • 在 Spring Boot 项目中启用 Multimap 的 json 序列化

    我想在 Spring Boot 应用程序中序列化一些 google guava Multimap public class SomeDTO JsonProperty Multimap
  • 错误 - ListenerManager 无法初始化 httpstransport 侦听器 - WSO2

    我启动了 WSO2 API Manager 1 8 的新副本 但无缘无故地出现以下错误 ERROR ListenerManager Couldn t initialize the httpstransport listener 我怎样才能解
  • 如何使表单(html、jsp)中的文本字段仅接受 dd/mm/yyyy 格式而不单击提交按钮

    我在 jsp 表单页面中有一个字段 它接受 起始日期 和 截止日期 现在我知道了可用于使用提交按钮验证这一点的脚本代码 但我的字段目前接受任何形式的 10 个字符 例如 28 07 2000 或 2807 2 00 它接受数字和任意数量的
  • 将 LINQ 结果送入 DataROW

    这有效 var Result from e in actual Elements select new Key e Key ValueNumber e Value ValueNumber ValueString e Value ValueS
  • 是否有支持默认属性值的 XML Schema 验证库?

    如果我读到默认属性值的 XML 模式规范正确的是 验证过程实际上应该更改 DOM 以填充默认值 default 指定该属性无条件出现在 模式验证后信息集中 这是对规范的正确解读吗 更重要的是 是否有任何库 Java C Python 等 支
  • 如何使用 __doPostBack()

    我正在尝试使用 ASP NET 创建异步回发 doPostBack 但我不知道该怎么做 我想使用普通 JavaScript 像单击按钮这样简单的事情可能会导致 doPostBack 触发事件 我只是想了解这个机制是如何运作的 您可以在 We
  • 将数据帧索引转换为日期时间

    如何将 pandas 字符串索引转换为日期时间格式 我的数据框df是这样的 value 2015 09 25 00 46 71 925000 2015 09 25 00 47 71 625000 2015 09 25 00 48 71 33
  • XmlTypeAttribute 仅适用于类中的属性

    我正在尝试使用 webservice 将其解析为 XML System Xml Serialization XmlTypeAttribute Namespace http www xx com zz Domain Public class
  • 如何在 FastAPI 中使用带有表单数据的 Pydantic 模型?

    我正在尝试从 HTML 表单提交数据并使用 Pydantic 模型对其进行验证 使用此代码 from fastapi import FastAPI Form from pydantic import BaseModel from starl
  • ggmap 400 错误请求

    我以前用过这个 而且一直有效 library ggmap newmap2 lt get openstreetmap bbox c left 71 2612362452596 bottom 42 3308503846824 right 71
  • 如何使Google电子表格的所有工作表在左上角显示A1?

    我有一个 72 页的 Google 电子表格 我正在尝试重置每个工作表 以便当您单击其选项卡时 它会在左上角显示 A1 也就是说 如果向下滚动一张工作表以致您看不到 A1 我希望它向后滚动以便您可以看到 我已经尝试过以下谷歌脚本 但没有任何
  • 创建独立的jar文件

    我已经建立了一个jar使用 Netbeans 创建文件 它在我的系统中运行良好 但我想做jar能够在所有具有 JRE 的系统中运行的文件 即使是classpath没有在该系统中设置 package circle import java aw
  • 使用静态成员变量时出现链接器错误

    我已经在这里浏览了与静态成员变量相关的所有线程 但不幸的是这无法帮助我找出原因 这就是问题 定义一个类名dvd db 包括以下成员 数据成员 DVD 名称 私有字符数组 大小 10 价格 私有双变量 数量 私有 int 变量 一个私有静态
  • 分析是什么以及如何分析我的 Java 程序?

    我听说过很多关于剖析的事情 这是怎么回事 据我了解 这是某种绩效衡量 但有人可以更清楚地阐述这一点 以便新手能够掌握这个想法 另外 我将 Eclipse IDE 用于我的 Java 程序 我可以使用 Eclipse IDE 分析我的程序吗
  • Pandas read_csv 在解析数字时忽略美元符号

    我有一个 csv 文件 其中一些单元格带有美元符号 例如 46 5 我强迫所有类型都是numpy float64在函数中pandas read csv 它抱怨ValueError could not convert string to fl
  • 如何修复 IE7 浮动清除组合

    我有一个 field wrapper 类 div 其中包含 3 个子 div field label field input 和 field error 我需要将 field label field input 并排放置 并将 field
  • Canvas/JS:计算倾斜斜坡碰撞中物体的新速度矢量?

    好吧 我正在 JS Canvas 上开发弹球游戏 我想知道如何处理鳍状肢和球之间的碰撞 我可以让脚蹼击球 但我对如何通过不同的脚蹼位置 角度 改变球的速度方向感到困惑 以下是我可以从脚蹼和球中使用的信息 this ballPosX ball
  • Django:管理中的验证错误

    新手警报 背景 这是我第一次编写一个需要验证的模型 我不能有两个Items具有重叠的 日期范围 我一切正常 除了当我引发 forms ValidationError 时 我得到死亡黄屏 debug true 或 500 页 debug fa
  • 如何快速制作不同形状的图像视图

    我想将普通的ios图像视图更改为下面的图像形状 如弧线 您可以使用它来根据您的要求设计形状 您可以向路径添加额外的线条 以防您需要修改贝塞尔曲线路径 创建一个自定义 UIImageView 类 并将故事板中的图像视图子类化为您的自定义类 i