IOS 开发
文章平均质量分 53
本专栏用于记录基于 Objective-C 开发 IOS 项目过程中一些问题的解决方案。
TommySte
中山大学计算机学院
展开
-
IOS-富文本文字+链接+点击事件完全自定义
如何实现富文本文字+链接完全自定义效果图实现UITextView 的配置链接点击事件重定向效果图环境:XCode12.3 - IOS14.3语言:Objective-C副标题为富文本实现的文字+链接实现带链接的富文本只能使用 UITextView,使用 UILabel 无法完全自定义样式与点击事件。UITextView 的配置有几个注意点:链接的样式直接在创建富文本字符串的时候配置无法改变颜色,在 textView 的 linkTextAttributes 可以完全实现链接部分文字样式原创 2021-08-18 19:04:15 · 3824 阅读 · 0 评论 -
IOS-Masonry 布局的 View 没有高度的解决方案
Masonry 布局的 View 没有高度怎么办?前言解决方案前言情景:自定义了一个 UIView,在内部配置了几个元素,使用 Masonry 进行元素的布局。UIView 没有配置 frame,而是依赖内部元素撑起高度,依赖外部的约束控制宽度。问题:最终结果是构造出来的 UIView 没有高度(高度为 0),导致显示混乱。解决方案排除其它问题,您可以检查一下 UIView 的内部元素的 Masonry 布局中,是否至少有一个元素的 mas_bottom 配置了与 self(UIView)的约束关原创 2021-08-17 16:24:06 · 1166 阅读 · 0 评论 -
IOS-UILabel 呈装富文本无法换行的解决方案
UILabel 无法换行解决方案前言解决方案前言在 Masonry 中使用 UILabel 无法换行。尝试了几个方案,比如:设置 lineBrakeMode,numberOfLines,但怎么都无法换行。解决方案为您的 UILabel 配置 preferredMaxLayoutWidth,设置最大宽度,即可成功换行!_titleLabel = [UILabel new];_titleLabel.numberOfLines = 2;_titleLabel.preferredMaxLayoutWi原创 2021-07-27 08:45:55 · 3228 阅读 · 0 评论 -
XCode 模拟器取消提示“允许或拒绝我的应用程序接受传入的网络连接“
取消每次运行的防火墙提示前言如何取消该提示?前言该提示是这是Mac OS X用于所有未签名的联网应用程序的标准防火墙消息。如何取消该提示?需要将 XCode 的 Simulator 永久添加到防火墙的允许应用中。在终端中运行:#temporarily shut firewall off:sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off#put Xcode as an exception:/u原创 2021-07-12 08:52:35 · 847 阅读 · 0 评论 -
IOS-从相册选取图片与显示
图片上传与显示的实现使用 UIImagePickerController 从相册上传图片使用 UIImagePickerController 从相册上传图片使用方法:在视图控制器.h 文件中声明代理:@interface myViewController : ViewController<UIImagePickerControllerDelegate>// ...@end实现必须的代理函数:#pragma mark - UIImagePickerControllerDe原创 2021-05-24 19:23:33 · 1392 阅读 · 0 评论 -
IOS-堆、栈总结
IOS 堆、栈的使用与区别数据结构内存管理堆、栈的区别管理方式体型、性能存储内容参考数据结构堆、栈是两种数据结构。栈是一种线性的数据结构,存储和访问数据时,都只能访问栈的一端。数据访问为 FILO(先进后出)。堆是一种特殊的二叉树,(最大堆)具有以下两个性质:每个节点的值 >= 其每个子节点的值。树完全平衡(任意节点的左右子树的高度差值 <= 1),最后一层的叶子节点都位于最左侧。堆可以用树(指针节点)来实现,也可以用数组来实现:注:可以看到,数据结构中的堆维护了一个较为复杂原创 2021-05-06 19:56:35 · 1738 阅读 · 0 评论 -
IOS-网络请求
IOS UINavigationController 的使用前言NSURLSession 的使用结语前言当 IOS 项目有了后台,就不可避免地要进行诸如: POST, GET 这样的 HTTP 请求。我们知道 HTTP 请求通常是使用 JSON 格式的字符串来进行参数传递和数据回调。下面就来看看如何使用 IOS 内置控件 NSURLSession 来进行 HTTP 请求。NSURLSession 的使用直接先献上代码:// 创建请求路径 - URL 的格式 NSURL *url=[NSU原创 2020-12-11 22:19:17 · 457 阅读 · 0 评论 -
IOS-页面跳转与切换
IOS UINavigationController 的使用前言如何使用 UINavigationController 进行页面跳转结语前言对于稍微复杂一点的 UI,页面跳转都是无法避免的。如何使用 UINavigationController 进行页面跳转都说 UINavigationController 就是一个栈结构,页面跳转实际就是出栈和入栈的操作,确实如此。下面是完整的使用过程:首先,我们需要在 AppDelegate 定义一个 UINavigationController 对象:原创 2020-11-11 09:25:11 · 1998 阅读 · 0 评论 -
IOS-延迟执行程序
IOS 如何不那么优雅但很实用地阻塞程序前言NSTimer结语前言有时需要程序阻塞一段时间,再继续执行代码。我第一个想到的就是 Sleep() ,查了资料,使用了系统的阻塞函数,得到的结果却跟预期不一样。因不明原因,我放在 Sleep 前想要在阻塞时继续执行的程序(是一个持续了几秒的动画)也中枪了。动画卡在那里,Sleep 结束之后,动画被完美跳过。。。NSTimerNSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.5 targe原创 2020-11-11 08:52:38 · 362 阅读 · 0 评论 -
IOS-全局变量
IOS 如何定义和使用全局变量前言全局变量结语前言刚开始做多控制器的项目时就有一个巨大的问题,那就是控制器之间如何进行“通信”,一个很自然的想法就是用到控制器之间可以共享的全局变量。但是这个时候就发现。。。怎么定义全局变量来着?Objective-C 更像是 Java,我们定义 Controller 类的各种行为和操作,然后在 AppDelegate 中将定义的 Controller 实例化,加入到 window 或其它的 Controller 对象中。我们习惯于将用到的每个 Controller原创 2020-11-10 10:11:21 · 1451 阅读 · 1 评论