iOS UIAlertController 添加自定义视图

0x00 效果图

先看效果图~

1.展示图片的

请添加图片描述

2.展示自定义视图的
请添加图片描述


0x01 分类

想要添加视图,就要有足够的空间
如何让系统给出足够的空间呢?

当给 message 参数传递换行符时 \n
就会撑开弹窗的高度
只要有足够多的 \n
就能撑开足够高的高度


0x02 高度测量

使用了 6pxxr 进行测试
测试结果数据如下:

6p  -  scale: 3
\n       - 31.67
\n\n     - 47.67 (16)
\n\n\n   - 63.67 (16)

x  -  scale: 3
\n       - 31.67
\n\n     - 47.67 (16)
\n\n\n   - 63.67 (16)

xr  -  scale: 2
\n       - 36
\n\n     - 54 (18)
\n\n\n   - 72 (18)

所以,根据外部传入的高度参数
可以计算出视图所占的高度

CGFloat scale = [UIScreen mainScreen].scale;
CGFloat lineHeight = scale == 2 ? 18 : 16;

NSInteger count = ceilf(viewSize.height / lineHeight);
NSMutableString *msg = @"".mutableCopy;
for (NSInteger i = 0; i < count; i++) {
    [msg appendString:@"\n"];
}

0x03 示例

展示图片的简单示例:
传入 图片名size 即可

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"请使用微信扫描二维码" image:@"qrxgame" imageSize:CGSizeMake(120, 120) preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:[UIAlertAction actionWithTitle:@"好的" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

}]];
[self presentViewController:alert animated:YES completion:nil];

仓库地址:JHAlertController


0x04 我的小作品

欢迎体验我的作品之一:小编辑器-XCompiler
在线编辑器~小而巧
App Store 搜索即可~


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豪冷啊

你的鼓励是对我的认可!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值