iOS Xcode Debug View Hierarchy 查看视图层级结构

前言

我们难免会遇到接手别人项目的情况,让你去改他遗留的问题,想想都头大,😂可是也不得不面对。作为开发者只要让我们找到出问题的代码文件,我们就总有办法去解决它,那么如何快速定位问题对应的代码文件呢?今天分享一个Xcode的超实用工具 Xcode Debug View Hierarchy 通过这个工具,我们可以很方便地查看视图的层级结构,从而找到视图所对应的类文件。

进入视图层级结构模式

  1. 先将项目在模拟器或者真机上运行起来
  2. 再点击图中的按钮就可以进入 Debug View Hierarchy 模式

在这里插入图片描述

使用View Hierarchy

获取当前视图控制器

  1. 选中界面中的一个控件
  2. 鼠标右键弹出菜单
  3. 点击Reveal in Debug Navigator

在这里插入图片描述

  1. 会在调试导航器中 定位到当前控件的位置,再往上查看层级就可以找到它所属的控制器了。如下图所示:WaterFlowLayoutVC 便是当前视图的控制器

在这里插入图片描述

获取自定义的控件
同样的步骤,获取到当前控件的自定义类是:WaterFlowLayoutCell在这里插入图片描述

打印自定义的控件类名

  1. 在导航栏中选择要获取的控件
  2. 鼠标右键展示菜单
  3. 选择打印描述 Printing description of
    在这里插入图片描述

控制可视的层级

当面临复杂界面的时候,可以通过调节这里,将不需要的视图层关掉
在这里插入图片描述

结语

用好 Xcode Debug View Hierarchy 这个工具,不但可以帮我们快速找到控件所属的代码文件,它还能在我们日常的UI界面开发中帮我们排查视图层级所引起的布局问题。


感谢您的阅读和参与,HH思无邪愿与您一起在技术的道路上不断探索。如果您喜欢这篇文章,不妨留下您宝贵的赞!如果您对文章有任何疑问或建议,欢迎在评论区留言,我会第一时间处理,您的支持是我前行的动力,愿我们都能成为更好的自己!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/12634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FullCalendar日历组件集成实战(4)

背景 有一些应用系统或应用功能,如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件,但功能比较简单,用来做数据展现勉强可用。但如果需要进行复杂的数据展示,以及互动操作如通过点击添加事件&#xff0…

python如何做一个服务器fastapi 和flask

用 fastapi 方式的话 from fastapi import FastAPIapp FastAPI()app.get("/api") def index():return "hello world"然后需要安装 uvicorn 并执行下面的命令 uvicorn server:app --port 8000 --reload最终 如果是用 flask 直接写下面的代码 # -*- cod…

IP代理网络协议介绍

在IP代理页面上,存在HTTP/HTTPS/Socks5三种协议。它们都是客户端与服务器之间交互的协议。 HTTP HTTP又称之为超文本传输协议,在因特网使用范围广泛。它是一种请求/响应模型,客户端向服务器发送请求,服务器解析请求后对客户端作出…

20240514基于深度学习的弹性超材料色散关系预测与结构逆设计

论文:Dispersion relation prediction and structure inverse design of elastic metamaterials via deep learning DOI:https://doi.org/10.1016/j.mtphys.2022.100616 1、摘要 精心设计的超材料结构给予前所未有的性能,保证了各种各样的具…

Linux学习笔记(Socket)

Linux-Socket 1、基础知识2、服务端3、客户端4、读写操作4.1、读写函数4.2、阻塞IO和非阻塞IO 5、例程 1、基础知识 socket用于计算机之间的网络通信,无论是构建服务器还是客户端,我们仅需要三个信息,服务器的ip地址,对应进程的端…

OpenAI 新发布的 GPT-4o,有血有肉的Ai来了,可实时语音视频交互

今天,OpenAI又又又开发布会了。 在大众心里,现在也基本上都知道,奥特曼是一个贼能PR的人。 每一次的PR的时间点,都拿捏的极其到位,精准的狙击其他厂商。比如说上一次Sora,其实你会发现从头到尾就是一个PR的…

奥维地图下载高清影像的两种方式!以及ArcGIS、QGIS、GlobalMapper、自编工具下载高清影像的方法推荐!

今天来介绍一下奥维互动地图是如何下载高清影像的,也不是多了不起的功能!有朋友问,加上这个软件确实用的人多。 下载的高清数据在ArcGIS中打开的效果! 开始介绍奥维之前我们也介绍一下我们之前介绍的几个方法,没有优劣…

zabbix触发器配置定期生效教程

在企业生产过程中,并非所有的设备都需要全天候、满负载运转,也有些仅需要周期性的运转即可。例如,在某家企业,有一批这样的机器,每天都会在固定的时间跑批量任务,期间,机器的CPU使用率会有明显的…

LeetCode 126题:单词接龙 II

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

联软安渡 UniNXG 安全数据交换系统 任意文件读取漏洞复现

0x01 产品简介 联软安渡UniNXG安全数据交换系统,是联软科技自研的业内融合网闸、网盘和DLP的一体机产品,它同时支持多网交换,查杀毒、审计审批、敏感内容识别等功能,是解决用户网络隔离、网间及网内数据传输、交换、共享/分享、存储的理想安全设备,具有开创性意义。 UniN…

什么是BI看板?选择BI看板制作工具时一定要考虑这些方面

BI看板也称为商业智能仪表板,是一种直观的数据可视化工具,它将关键业务指标(KPIs)和数据以图表、图形和表格的形式集中展示,使用户能够快速获取企业运营的实时概览。 这种数据可视化方式不仅使得复杂的数据信息易于理…

FPGA - Xilinx系列高速收发器---GTX

1,GTX是什么? GT :Gigabit Transceiver千兆比特收发器; GTX :Xilinx 7系列FPGA的高速串行收发器,硬核 xilinx的7系列FPGA根据不同的器件类型,集成了GTP、GTX、GTH、GTZ四种串行高速收发器&am…

(python)cryptography-安全的加密

前言 cryptography 是一个广泛使用的 Python 加密库,提供了各种加密、哈希和签名算法的实现。它支持多种加密算法,如 AES、RSA、ECC 等,以及哈希函数(如 SHA-256、SHA-384 等)和数字签名算法(如 DSA、ECDSA 等). 目录 …

pikachu靶场通关之csrf漏洞通关教程

目录 CSRF(get型) 1.打开网站,点击右上角提示 2.登录之后,点击修改个人信息 3.修改上述内容,打开抓包工具 4.抓到修改用户信息的数据包 5.构造虚假url,诱导用户点击 6.弹到修改后的界面 ​编辑 7.返…

前端已死? Bootstrap--CSS组件

目录 Bootstrap 下载 Bootstrap--全局CSS样式 栅格系统 栅格参数 正常显示 实例 代码演示: 排版 代码演示 表格 代码演示 表单 代码演示 等等...(文档很清晰了) Bootstrap--组件 结合演示:(页面) Bootstrap Bootstrap v3 中文文档 Bootstrap 是最受欢迎的 HT…

Open AI再次定义AI PC?

从传统的文字交互,到语音和图像交互——Open AI再次提升了人们对AI PC的想象空间。 这种更贴近人类间交互的模式,会多大程度改变目前PC的生态? 随着苹果M4芯片、高通骁龙X的发布,AI PC也逐渐成为了市场热议的产品。 从各家PC厂…

Spring:SpringBoot Starter 工作原理详解

一、前言 通过使用Spring Boot Starter,开发人员可以避免手动查找和添加每个所需的库,从而大大简化了项目的依赖管理。这些starter不仅包含了库依赖,还可能包含自动配置,从而减少了开发人员需要编写的配置代码。 本文将分析Spring…

51单片机小车制造过程记录

首先感谢B站up主好家伙vcc的资料。 这次小车做出来虽然资料挺全的,但中间还是犯了很多不该犯的错误。 第一个,物料这次我们搞错了挺多,最离谱的应该是最小系统板都错了。 资料里用的stm32f103c8t6,我们开始买成了stm32f103c8t6。…

QT状态机4-使用并行状态来避免组合爆炸

#include "MainWindow.h" #include "ui_MainWindow.h"MainWindow::MainWindow(QWidget *parent):