![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS
RRJia
学习记录中,如有错误,感恩指出~
展开
-
swift-实现collectionViewCell中文字“展开/折叠”效果
1、关键点:a.cell高度自适应b.自定义viewController实现代理,方便与cell交互,记录cell折叠/展开的状态进行展示原创 2023-03-06 16:57:00 · 634 阅读 · 0 评论 -
swift - 实现collectionViewCell高度自适应
1)设置layout的estimatedItemSize属性;2)为cell内部的view控件添加上下约束,保证竖直高度被撑满;3)重写preferredLayoutAttributesFitting方法,重新计算cell的高度原创 2023-03-01 16:40:52 · 2795 阅读 · 0 评论 -
Xcode升级到14以后,和cocoapods版本不兼容
当Xcode升级成14.2版本后,在项目的根目录下,执行命令:原创 2023-03-01 14:34:04 · 797 阅读 · 0 评论 -
解决:拖动xib控件到代码文件中,报错setValue:forUndefinedKey:this class is not key value coding-compliant for the key
报错截图:解决方法:步骤1:拖拽控件 步骤2:输入相关属性原创 2022-06-28 13:43:02 · 352 阅读 · 0 评论 -
iOS:xib文件拖拽控件,添加到代码文件中
步骤1:同时打开xib文件和代码文件,打开方式如下:步骤2:选中需要添加到代码文件的控件,通过New Reference Outlet属性进行拖拽原创 2022-06-28 10:05:28 · 1396 阅读 · 0 评论 -
解决:iOS开发,kvc的model获取不到值
解决方案:在model的成员变量前添加“@objc”关键字。原创 2022-06-25 19:27:41 · 441 阅读 · 0 评论 -
解决:Thread 1:[<*>setValue:forUndefinedKey]:this class is not key value coding-compliant for the key *
问题:运行程序崩溃,报错:“Thread 1: [ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key.”,截图如下:原因:在kvc映射中,映射的字段名和个数不一致导致的。解决方案:复写“func setValue(_ value: Any?, forUndefinedKey key: String)”方法。..................原创 2022-06-24 17:16:47 · 2482 阅读 · 0 评论 -
解决:Argument type ‘String‘ expected to be an instance of a class or class-constrained type
问题代码:解决方案:将 AnyObject类型 换为 Any类型,如下:原创 2022-06-22 17:23:58 · 1088 阅读 · 0 评论 -
解决“Thread 1: “-[*.CollectionNormalCellView isSelected]: unrecognized selector sent to instance **”
问题:使用xib文件创建“自定义UICollectionViewCell类:CollectionNormalCellView”时,出现崩溃,控制台打印信息如下:解决方案:进入xib文件 -> 选中控件 -> 设置Custom Class(如果自定义了,设成自定义cell;如未自定义,就设为UICollectionViewCell),操作路径如下:......原创 2022-06-20 17:25:20 · 728 阅读 · 0 评论 -
Xcode 解决模拟器运行(半屏)不满屏的问题
问题:运行程序,发现在模拟器中,页面只在中间区域显示,上部和下部都黑屏了。解决方案:设置Launch Screen File,路径如下:项目名 -> TARGETS(项目名) -> General -> App Icons and Launch Images -> Launch Screen File -> 选择Main或LaunchScreen。最终效果:满屏显示成功...原创 2022-03-23 09:53:47 · 3154 阅读 · 1 评论 -
Xcode iOS 工程目录结构解析
新建一个iOS项目,工程目录如下:原创 2022-02-23 16:07:16 · 2427 阅读 · 0 评论 -
swift - 解决键盘遮挡tableView中输入框的问题
核心思想:改变tableView控件的显示高度解决步骤:步骤一(监听键盘“出现”和“遮挡”事件):创建TableViewController.swift文件,在其中创建tableView控件,并监听键盘“出现”和“遮挡”的事件:“NotificationCenter.default.addObserver()”,同时要记得在实例对象销毁时删除对应的监听者:“NotificationCenter.default.removeObserver()”。import UIKitclass Ta原创 2022-02-18 09:45:17 · 1895 阅读 · 0 评论 -
swift - 实现tableViewCell高度自适应(随cell内部textView高度的变化而变化)
实现思路:1)设置cell的高度为自动计算:UITableView.automaticDimension2)为cell内部的view控件添加上下约束如图所示,当cell高度自动计算,且约束添加成功时,cell竖直方向被撑满,这样cell的高度就会随着view控件的高度变化了 。实现步骤:步骤一(自定义tableViewCell,设置约束!!!这里只使用一个label标题和一个textView模拟):创建TableViewControllerCell.swift文件,并添加如下原创 2022-02-17 11:17:22 · 5083 阅读 · 0 评论 -
swift - 解决UITableViewCell复用机制下,内部view控件出现重叠的问题
问题描述:开始tableView显示正常,滑动几次后,cell内部的view控件出现重叠,如图所示: 重叠原因:这是由于,我在代码中,把cell中view控件的添加方法cell.addSubView(view控件)写到了tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 方法中。在cell的复用机制下,当滑动tableView时,...原创 2022-02-16 19:55:44 · 1561 阅读 · 0 评论 -
swift - UITableViewCell复用机制的使用步骤
前言:UITableViewCell的复用机制是指,只创建一定数量的cell,然后将它们储存起来,在滑动屏幕的过程中,循环重复使用这些cell。这样做既避免了储存cell时对内存的消耗,又避免了频繁创建和销毁cell时对性能的影响。实现方法:自定义tableViewCell类、注册cell复用池、调用复用池中的cell步骤一:创建Cell.swift文件,让该类继承TableViewCell,代码如下:import UIKit// MARK: - 自定义TableViewCell,以便使用原创 2022-02-16 18:59:17 · 1759 阅读 · 0 评论 -
swift - 添加导航栏
步骤一:修改AppDelegate文件为如下代码:class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?).原创 2022-02-12 20:44:05 · 1880 阅读 · 0 评论 -
iOS - Xcode工程可以运行成功,但是一直处于黑屏状态
·引起黑屏现象的原因分析:原因:iOS工程代码中缺少window属性详细说明:Xcode11以后,Xcode会默认使用Scene进行多窗口分屏管理,我们可以在SceneDelegate文件中看到,window属性已经被默认创建,如下图所示:当我们没有多窗口分屏的需求时,可以删除工程中Scene的相关代码(SceneDelegate文件、AppDelegate中有关Scene的方法、Info.plist文件中的Scene配置项,这里可参照下文的步骤二至四进行操作)。删除原创 2022-02-12 23:34:41 · 4948 阅读 · 2 评论 -
swift - 实现TextView高度自适应
实现思路:使用UITextViewDelegate代理中的“textViewDidChange()方法”实现。实现方法:步骤一:创建TextViewAdapt.swift文件,在其中添加TextView控件,并设置textView.delegate =self(一定要设置好代理,否则不生效!!)。import UIKitclass TextViewAdapt: UIViewController { private var label = UILabel() priva.原创 2022-02-13 14:12:21 · 1517 阅读 · 0 评论