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

Swift向UIAlertController添加箭头和sourceView

在Swift中,我们可以使用UIAlertController来创建弹出框,并且可以通过添加箭头和sourceView来定制弹出框的外观和位置。

UIAlertController是iOS中用于显示警告、提示和确认信息的控制器。它可以包含一个或多个按钮以及一个可选的文本输入框。要向UIAlertController添加箭头和sourceView,我们需要进行以下步骤:

  1. 创建UIAlertController实例:let alertController = UIAlertController(title: "标题", message: "消息", preferredStyle: .actionSheet)

这里我们选择了.actionSheet样式,以便在屏幕底部显示弹出框。

  1. 创建箭头和sourceView:let arrowView = UIImageView(image: UIImage(named: "arrow")) let sourceView = UIView() sourceView.addSubview(arrowView)

这里我们创建了一个UIImageView作为箭头,并将其添加到一个UIView作为sourceView。

  1. 设置sourceView和箭头的约束:arrowView.translatesAutoresizingMaskIntoConstraints = false sourceView.translatesAutoresizingMaskIntoConstraints = false

NSLayoutConstraint.activate([

代码语言:txt
复制
   arrowView.centerXAnchor.constraint(equalTo: sourceView.centerXAnchor),
代码语言:txt
复制
   arrowView.topAnchor.constraint(equalTo: sourceView.topAnchor),
代码语言:txt
复制
   sourceView.widthAnchor.constraint(equalToConstant: 1),
代码语言:txt
复制
   sourceView.heightAnchor.constraint(equalToConstant: 1)

])

代码语言:txt
复制

这里我们使用Auto Layout来设置箭头和sourceView的位置和大小。

  1. 添加sourceView到UIAlertController的view中:alertController.view.addSubview(sourceView)

这样,sourceView就会成为UIAlertController的一部分。

  1. 显示UIAlertController:present(alertController, animated: true, completion: nil)

通过调用present方法,我们可以将UIAlertController显示在屏幕上。

至此,我们成功向UIAlertController添加了箭头和sourceView。这样做的好处是可以自定义弹出框的外观和位置,以满足特定的设计需求。

推荐的腾讯云相关产品:腾讯云移动推送(https://cloud.tencent.com/product/umeng_push)可以用于向移动设备发送推送通知,适用于各类移动应用场景。

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

相关·内容

【IOS开发基础系列】UIAlertController专题

本文将会对Alert ViewsAction Sheets发生的改变进行一个大致的介绍,我们会采用Objective-Cswift两种语言同时进行代码说明。...以前我们只能在默认视图、文本框视图、密码框视图、登录密码输入框视图中选择,现在我们可以对话框中添加任意数目的UITextField对象,并且可以使用所有的UITextField特性。...当您对话框控制器中添加文本框时,您需要指定一个用来配置文本框的代码块。         ...举个栗子吧,要重新建立原来的登录密码样式对话框,我们可以其中添加两个文本框,然后用合适的占位符来配置它们,最后将密码输入框设置使用安全文本输入。     ...)         添加按钮动作的方式对话框相同。

37130

iOS OC swift 自定义 popover 泡泡

环境: Xcode:Xcode 8.2 Swiftswift3+ git 地址:https://github.com/TieShanWang/KKPopover pod 集成:pod 'KKPopover...' 【注意】pod 版本,swift 3 支持,以 3....棕色区域是可以设置的 红色 底层箭头视图的边框 白色 底层箭头视图的背景颜色 蓝色 自定义内容区域,在此区域(contentView)可以添加希望展示的内容 加号按钮 模拟了 sourceView...可以看到当 sourceView(加号按钮) 在不同地方的时候,popover 自动更改方向、调整箭头方向、位置以适应不同的 sourceView 类说明 open class KKPopover: UIView..., sourceView: UIView) /// 根据 sourceView 展示在指定视图中 /// - Parameters: /// - view: 添加到的视图,不传则添加到 window

2.6K70

iOS开发常用之 HUD 弹窗

WSProgressHUD - 一个小巧精致的HUD,支持添加到自定义查看上,还有更多小细节.....kxmenu - kxmenu弹出菜单,点击视图上任意位置的按钮,会弹出一个菜单,并且有个小箭头指向点击的按钮,类似气泡视图。弹出的菜单位置会根据按钮的位置来进行调整。...TAOverlay - TAOverlay可以通过叠加层展示有用的信息,可自定义文本背景色,添加阴影模糊效果,以及更改字体大小或者用户自定义图片替换页面的图标。...GSAlert.swfit - 苹果在iOS8推出了全新的UIAlertController,旧的UIAlertViewUIActionSheet渐渐被废弃,但如果你仍然支持iOS7系统,你将不得不写两套代码...PMAlertController.Swift - 可定制弹簧组件替代版本不可定制的UIAlertController

4.2K20

ios开发之xcode环境介绍

Device 我们选择只针对 iPhone 的,另外还有选项是 iPad Universal(iPhone iPad 都兼容)。...第十步 回到标准编辑器界面(点击 1),选择 ViewController.swift(点击 2),在 showAlert 中添加如下代码。...的对象,UIAlertController 就是一个类似对话框的东西 第二行,第三行,创建了一个 UIAlertAction 的对象,并把这个对添加到了刚才创建的 UIAlertController,...第十三步 之前生成 Button 的点击事件一样的步骤,为 开始新的一局 这个 Button 添加点击事件的响应函数,选择 1 进入编辑器的辅助模式,右键点击 2,拖动 3 到 4 的位置。 ?...这次的做法之前的添加 Button 的响应事件有点不同,选中 1 的 Text Field,然后按住 Ctrl 键不放,同时鼠标左键按住拖动到 2 的位置,松开鼠标键盘,注意,之前一样,要拖动到类的作用域里

2.2K60

JavaScript之文档中添加元素内容的方法

; 简单的说下:这个方法无法特定的标签下添加内容,还有就是与MIME类型application/xhtml+xml  不兼容...,虽然能实现文档下添加内容元素的功能,但是不是很推荐使用; 2.innerHtml属性 这个属性几乎所有的浏览器都支持,但是这个属性并不是W3C DOM的标准的组成部分,最重要的是这个属性Html5...;                 nnerHtml毫无细节可言,如果你想要获得ID=testdiv下的细节只能通过dom的属性方法; innHtml就像一把大锤一样粗放,而标准化的DOM就像手术刀一样精细...成功添加; 3、createTextNode() ok,现在我们在我们需要添加标签的地方成功了的添加了标签,接下来就是往标签里面添加文本内容了,createTextNode()就是干这个的; <html...成功添加;  注意appendChild的顺序,添加的顺序可以有很多种,你可以先把变迁内容创建好,再向对应的容器append.顺序不同可能会影响最后的添加成败!

2.8K70

wkwebview加载完成_【Swift】WKWebView与JS的交互使用

接下来大家一块学习下WKWebView是怎么实现原生代码JS交互的。...传递的数据 } 3、在js中点击按钮,进行弹窗实现 //MARK:WKUIDelegate //此方法作为js的alert方法接口的实现,默认弹出窗口应该只有提示消息,及一个确认按钮,当然可以添加更多按钮以及其他内容...animated: true, completion: nil) } // prompt //作为js中prompt接口的实现,默认需要有一个输入框一个按钮,点击确认按钮回传输入值 //当然可以添加多个按钮以及多个输入框...还有 JSExport 协议: 实现将原生类及其实例方法,类方法属性导出为 JavaScript 代码的协议。...您使用此类有两个主要目的:支持并发 JavaScript 执行,并管理 JavaScript Objective-C 或 Swift 之间桥接的对象的内存。

5.5K00

js给数组添加数据的方式js 数组对象中添加属性属性值

参考:https://www.cnblogs.com/ayaa/p/14732349.html js给数组添加数据的方式有以下几种: 直接利用数组下标赋值来增加(数组的下标起始值是0) 例,先存在一个有...splice(第一个必需参数:该参数是开始插入\删除的数组元素的下标,第二个为可选参数:规定应该删除多少元素,如果未规定此参数,则删除从 第一个参数 开始到原数组结尾的所有元素,第三个参数为可选参数:要添加到数组的新元素...arr.splice(3,0,7,8,9) console.log(arr);  此时的输出结果是[ 1, 2, 3, 7, 8, 9 ]; 因为举例是从第3个下标开始,所以是直接在数组的最后开始增加数组内容; js 数组对象中添加属性属性值

23.1K20

常用开发技巧系列(五)

三:ARC非ARC混编 ---- 有维护一个以前的Cocos-lua的游戏,这份代码也是比较的老了,是非ARC的环境,在维护中有给这个游戏当中添加其他第三方的框架进去,但现在的iOS的框架几乎没有非...下面是你给游戏中添加了MJ之后,你把MJ设置成ARC环境: ?...五:JS Swift WKWebView 的最基本交互 ---- 这个点要是往大了说。...可以写一篇原生JS交互的文章,但以前我写过这样的文章,就不想在做重复的工作了,这里我们就提一下JS Swift WK的交互,也是刚有一点点需求写了,就记录一下吧,代码具体的看下面,需要注意的地方我都写在代码里面了...但关键点可能还不是在这里,你要直接添加我相信你log中会有这么一句: Warning: Attempt to present on

1.5K41

swift3.0 CoreGraphics绘图-实现画板Demo地址

写在前面 弄了下个人站...防止内容再次被锁定...所有东西都在这里面 welcome~ 个人博客 swift3.0对绘图的API进行了优化,看起来更swift了。 看下UI的构造。...设置画笔粗细、清空面板保存到本地 ? 画板哦.gif 下面直接看画板文件 这里我做的比较复杂,记录触摸到的每个点,再连成路径,其实直接用可变路径CGMutablePath可变路径就可以实现。...else { resultTitle = "提示" resultMessage = "保存成功" } let alert:UIAlertController...= UIAlertController.init(title: resultTitle, message:resultMessage, preferredStyle: .alert)...self.present(alert, animated: true, completion: nil) } 不过千万别忘了给app设置相册的权限 在info.plist中添加

63740

如何使用CsWhispersC#项目添加DInvoke间接系统调用方法

CsWhispers是一款针对C#编程项目的源代码生成工具,该工具基于C#开发,并且完全开源,可以帮助广大研究人员已有的C#项目添加D/Invoke间接系统调用方法源码。...工具使用 首先,我们需要将最新版本的NuGet包添加到你的项目中,并允许不安全的代码: ...CsWhispers.txt" /> 接下来,将任何你想要引入你项目中的NT API结构体...hProcess.Value.ToInt64()); } D/Invoke CsWhispers包含了一个最小化的D/Invoke版本,因此我们也可以调用Generic.GetLibraryAddressGeneric.DynamicFunctionInvoke...类的继承使用 该工具所生成的全部代码都会被添加到CsWhispers.Syscalls类中,我们可以通过继承这个类来添加我们自己的API。

10010

RxSwift 与 BLE 实战——VisualBlue

公司的项目正从 OC Swift 迁移,之前蓝牙部分还全是用 OC 写的,各种 delegate notification 满天飞,看着都头疼。...扫描设备的整个流程大致是这样的: 筛选蓝牙状态,将除.PoweredOn之外的状态过滤掉 扫描设备 筛选设备,将已出现过的设备过滤掉 将扫描到的新设备添加到设备列表中 用设备列表构建一个dataSource...,并与tableView绑定 将资源添加到disposeBag中,以待统一回收处理 这个过程用 Rx 的风格来写大概是这样的: func bindDataSource() { manager.rx_state...SegueId.ShowCharacteristics, sender: peripheral) case .Error(let error): let alertController = UIAlertController...,或许还会优化一下 UI 交互,譬如连接蓝牙的时候加个进度动画什么的。

1.1K20
领券