IOS 纯代码实现视图控制器的封装

iOS中标准的自定义控件(UIView的封装) iOS中标准的自定义控件(UIView的封装)前言,在开发过程中,由于系统的控件不能达到开发者的需求,导致自定义控件使用的频率非常高,基本上项目中处处都是自定义的控件。本文将介绍自定义控件的总体使用(也就是UIView的封装),不细分单独控件的自定义(如UIButton、UITabBar的自定义)其实单独控件的自定义与本文也是大同小异。另外本文下面的例子用自定义UIButton更为合适,但是本人出于 阅读详情

//没有了storyboard就需要通过appdelegate中设置项目入口。

 

1.初始化控制器,侧边栏

 

 

 

解决方案: 设置程序的主入口,添加导航控制器, 将这些页面加入到第三方框架中管理,初始化界面

 

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {

//设置项目的入口

    self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

    self.window.backgroundColor = [UIColor whiteColor];

 

    [self initializeLeftMenu];

    

//设置这个程序的根控制器,页面加载后由self.drawViewController管理

    self.window.rootViewController = self.drawViewController ;

    //必写方法,啥意思不懂

    [self.window makeKeyAndVisible];

    return YES;

}

 

-(void)initializeLeftMenu{

//创建一个首页主页,

    XWMainPageViewController *mainVc  = [[XWMainPageViewController alloc]initWithNibName:@"XWMainPageViewController" bundle:nil];

    //创建一个导航控制器将  刚才创建的主界面加进去。

    UINavigationController *navi = [[UINavigationController alloc]initWithRootViewController:mainVc];

    //创建一个侧边栏控制器

    XWLeftViewController *leftVc = [[XWLeftViewController alloc]initWithNibName:@"XWLeftViewController" bundle:nil];    

    //通过第三方框架设置主控制器(将导航控制器中的界面加入进去),和侧边栏。

    self.drawViewController = [[MMDrawerController alloc]initWithCenterViewController:navi leftDrawerViewController:leftVc];

    

    [self.drawViewController  setOpenDrawerGestureModeMask:MMOpenDrawerGestureModePanningCenterView];

    [self.drawViewController  setCloseDrawerGestureModeMask:MMCloseDrawerGestureModePanningCenterView];

    //侧边栏滑动的宽度值

    [self.drawViewController  setMaximumLeftDrawerWidth:255.0];

    [self.drawViewController  setAnimationVelocity:2000];//滑动速度

    [self.drawViewController  setShouldStretchDrawer:NO];

    

    //将导航控制器加入定义好的主控制器中。

    self.mainNavi =navi;

    leftVc.mainNavi = self.mainNavi;

    

    

    

}

从零开始的iOS开发:10 | 如何构建一个APP 往期文章 00 | Swift基础语法(上) 01 | Swift基础语法(下) 目录 一、如何建立一个APP 项目 二、知识准备 1.开发环境 2.MVC架构 3.熟悉Xode的开发界面 三、一个简单的APP——Hello World 一、如何建立一个APP 项目 1.首先打开Xcode建立一个项目(project),选择Create a new Xcode project 也可以通过左上角的File->New->Project建立一个项目 2.选择iO.. 阅读详情

相关推荐

献给初学iOS的小盆友们------微博app项目开发之一项目初始化

献给初学iOS的小盆友们——微博app项目开发之项目初始化本人自学iOS也有七八个月了,不敢说学到很深入了,但也算入了门。此次微博app项目参考了传智播客培训教材,主要学习内容有架构思想,封装思想,代码重构,业务逻辑等内容,项目涵盖面广泛,讲解易懂,且采用纯代码方式搭建UI,希望对那些没有时间看视频的初学者们有所帮助。相信学习完本套项目,初学者会在编程思想上有一个很大的提升。

YG_Activist 2824

iOS开发设计模式之MVC

本片文章介绍MVC设计模式及其在iOS开发中的使用技巧什么是MVC设计模式MVC是设计模式的起源,也是在软件工程领域使用最多的一种设计模式。MVC即:Model模型、View视图、Controller控制器模型: 在模型对象中封装数据并定义操作数据的特定逻辑行为 模型可以表示复杂的数据结构,可以是屏幕上显示的数据、等待处理的数据等视图: 使用视...

weixin_33753845的博客 63

iOS KEEP风格登录界面实现教程.zip

创建自定义UI组件的第一步是封装基础的UI元素。开发者可以创建基础组件,例如按钮、标签、输入框等,并在子类中定义其视觉样式和行为。iOS中UIView提供了一系列动画方法,使得开发者能够轻松实现丰富的动画效果。这些方法可以简单地应用到视图上,实现淡入、淡出、旋转和缩放等动画效果。

weixin_31591833的博客 1073

开源 Objective-C IOS 应用开发(十六)Storyboard模式下的纯代码界面

本文分享了使用Objective-C开发iOS应用的经验总结。作者作为嵌入式开发人员临时学习iOS开发,详细记录了纯代码创建界面的关键步骤:1)AppDelegate中配置主窗口和根视图控制器;2)在ViewController中实现界面布局和交互逻辑;3)区分viewDidLoad、viewWillAppear等生命周期方法的使用场景。文章提供了完整的代码示例,包括窗口初始化、UILabel/UIButton创建及事件处理,并给出了最佳实践建议。

ajassi2000的博客 702

iOS应用侧边栏设计与实现实战

为了实现自定义滑动手势识别,我们可以在方法中添加更多的逻辑。例如,我们可以通过检测滑动的速度和方向来实现不同的功能。// 手势是向左滑动// 手势是向右滑动// 重置滑动手势的偏移量在这段代码中,我们通过velocity属性获取滑动的速度,以及通过属性获取滑动过程中的偏移量。根据这些信息,我们可以判断用户滑动的方向和速度,从而执行不同的操作。在现代iOS应用中,平滑且富有表现力的转场动画能够显著提升用户体验,让界面转换不仅自然而且直观。

weixin_42284380的博客 1089

iOS纯代码框架开发与实践:全方位技术要点总结

要创建一个自定义的控件,通常的做法是从UIView或其子类(如UIButton、UILabel等)继承,并根据需要重写其方法。自定义控件可以为应用提供独特的视觉元素和交互方式。重写的过程中,开发者可以通过设置控件的属性来自定义外观和行为。// 设置默认的字体、颜色、背景等// 其他初始化代码...在上面的Swift代码中,我们创建了一个名为的新类,它继承自UIButton。我们重写了初始化方法,并添加了一个私有方法commonInit,用于统一设置按钮的一些基本属性。

weixin_42234168的博客 986

PagingKit无Storyboard实现:纯代码创建灵活分页菜单的技巧

PagingKit是一款功能强大的iOS分页菜单库,它提供了高度可定制的菜单UI,比其他库拥有更灵活的布局和设计。对于希望摆脱Storyboard束缚,采用纯代码方式构建界面的开发者来说,PagingKit提供了简洁而强大的解决方案。本文将详细介绍如何使用PagingKit纯代码实现灵活的分页菜单,帮助开发者快速掌握这一实用技能。 ## 为什么选择无Storyboard实现? 在iOS开发中,

gitblog_01160的博客 514

【C++】C++异常语法、使用、规范、异常安全及异常的优缺点

实际中我们可以可以去继承exception类实现自己的异常类。但是实际中很多公司像上面一样自己定义一套异常继承体系。因为C++标准库设计的不够好用。如果有一个块抛出一个异常,捕获异常的方法会使用 try 和 catch 关键字。try 块中放置可能抛出异常的代码,try 块中的代码被称为保护代码。C++ 提供了一系列标准的异常,定义在 中,我们可以在程序中使用这些标准的异常。异常是一种处理错误的方式,

weixin_51692487的博客 1525

iOS高仿app源码:纯代码打造高仿优质《内涵段子》

iOS高仿app源码:纯代码打造高仿优质《内涵段子》收藏下来 字数1950 阅读4999 评论173 喜欢133 Github 地址 https://github.com/Charlesyaoxin/NeiHanDuanZI 介绍: 花了不太到两周的闲余时间模仿了一下今日头条旗下的iOS端app内涵段子,如果喜欢的话请前往我的Github点个星。(8.30-9.11) 这个项...

diancannei3748的博客 343

利用 vivado实现加减法器的设计

本科计组实验:利用 vivado实现加减法器的设计

qq_52052302的博客 1万+

UNITY3D万人同屏,Dots万人同屏解决方案_类萌宠宠之战

UNITY3D弹幕游戏开发,万人同屏解决方案

6473

Social Analyzer 网页版指南:3步完成上千平台画像搜索

想找一个人却在十几个社交平台上逐个输入、逐个碰运气?Social Analyzer 就是把这件事自动化的开源项目:它内置了覆盖 1000 多个网站的检测库,你只需输入一个用户名,它就会并发访问各站点,判断哪些页面里真的存在这个人的资料。读完这篇指南,你能独立完成从安装启动、快速搜索到导出报告的完整流程。 ## 项目一览:这个工具适合谁 Social Analyzer 同时提供三种使用形态,你可

gitblog_00035的博客 986

STM32G4实战:用CubeMX+Keil五分钟搞定FreeRTOS多任务LED控制(避坑指南)

本文详细介绍了如何在STM32G4系列芯片上使用CubeMX和Keil快速配置FreeRTOS实现多任务LED控制,包括环境准备、时钟配置、任务创建及常见问题解决方案。重点解决了时钟源冲突等高频问题,并提供了优化建议和进阶应用示例,帮助开发者高效完成嵌入式开发任务。

joy55的博客 224

UItableBarController

纯代码: 1.UItableBarController --UIViewController UITabBArController管理视图控制器 和UINavigationController 的push 和 pop 不同 UITabbarController 通过数组属性viewController是来管理viewcontroller 所有, 创建UITabBarC

Vic 409

PyQt5 + HFSS:给你的仿真脚本做个专属GUI界面(零基础搭建指南)

本文详细介绍了如何使用PyQt5为HFSS仿真脚本创建专属GUI界面,适合零基础用户快速上手。通过Python二次开发,实现参数可视化调整、进度实时监控等功能,大幅提升团队协作效率。文章涵盖环境配置、界面设计、HFSS集成到打包部署的全流程,是仿真工程师提升工作效率的实用指南。

weixin_42535720的博客 185

SAR成像处理基本知识2——图像尺寸与回波尺寸的关系

阅读本文前,请先了解上一篇文章(SAR成像处理基本知识1——常用专用名词解释) 1. SAR图像尺寸预估方法 以C波段2m@20km的SAR图像为例,假设天线中心下视角为35° ,说明图像尺寸的估计方法。 1.1 距离向尺寸估计 地距分辨率为2m时,距离向分辨率约为1.15m,则要求信号带宽不小于130MHz,假设信号带宽为150MHz,采样率为180MHz,那么距离向分辨单元为0.833m。 地距幅宽为20km时,距离向幅宽约为20*sind(3...

爱学习的小伟的博客 4955

SpotifyRadar UI定制解析:从ColorPreference看纯代码布局与主题设计的10个细节

SpotifyRadar 是一款专为音乐爱好者打造的 iOS 开源应用,它能把收藏艺人的新歌发布自动汇总到你的手机,还能按时间范围查询你的 Top Tracks(热门歌曲)、Top Artists(热门艺人)和最近播放记录。这篇文章聚焦 **SpotifyRadar UI定制** 这个话题,带你从零读懂它的 **纯代码布局与主题设计**。这个 App 没有使用任何 Storyboard 或 XIB

gitblog_00319的博客 1052

保姆级教程:如何将仅限客户端使用的免费大模型(Gemini、Antigravity、Qwen Code、Kiro 等)转为任何应用可调用的 OpenAI 兼容标准接口

大模型 API 费用太贵?💸 这篇文章分享一个薅羊毛神器,能把 Gemini、Qwen Code、Kiro 等客户端专属的免费大模型转换成标准 OpenAI 兼容接口 🔌。支持多协议互转、账户池管理、Web 管理界面,Docker 一键部署,零成本调用 Claude Opus 4.5、Gemini 3 Pro 等高级模型 ✅

XiaoqiangClub的博客 1035

iOS UICollectionView(转一) XIB+纯代码创建:cell,头脚视图 cell间距

之前用CollectionViewController只是皮毛,一些iOS从入门到精通的书上也是泛泛而谈。这几天好好的搞了搞苹果的开发文档上CollectionViewController的内容,亲身体验了一下CollectionViewController的强大,之前一直认为CollectionView和TableView用法差不多,功能应该也是类似的。TableView的功能就已...

abaodc2308的博客 442

【实战】Python 携程酒店价格实时抓取爬虫项目全解析

摘要:本文介绍了一个基于Python的携程酒店价格实时抓取系统开发方案。系统采用Requests、BeautifulSoup和Selenium等技术栈,实现了多城市、多日期的酒店数据采集,包括价格、评分、位置等关键信息。通过请求头伪装、IP代理、随机等待等反爬策略,有效应对携程的反爬机制。系统支持数据清洗、去重和CSV/Excel导出,并提供了多线程优化、代理池集成等进阶方案。本文详细阐述了技术原理、代码实现和优化策略,同时强调了数据采集的合法合规性,为旅游行业数据分析提供了可靠的数据获取方案。

2503_91057718的博客 2607

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

iOS MVVM设计模式

前言: MVC 模式 是iOS业内人士耳熟能详的,后来逐渐有人提出了MVVM的设计模式,这篇文章的目的是在熟知MVC模式的基础上进一步认知什么是MVVM模式,并且在工作中MVVM思想怎么能对我们有助力作用。 一 .MVC:(Model View Controller) 是构建iOS App的标准模式。大多数开发者也一定在日常的开发中把MVC思想运用的淋漓尽致。 1.基本目的 ...

weixin_34119545的博客 4343

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

实现通讯录功能-使用单例封装写法

功能实现: 纯代码实现通讯录的增删移动和修改等功能,在删除增加修改的同时能同时以首字母为分组.... 创建两个视图控制器,修改之前联系人详情 或者 添加联系人 公用第二个视图控制器 有需要交流或者需要原工程代码的请加Q291975388 界面时间问题, 布局的可能不是很美观. 但这都不是重点 上代码// // RootViewController.m /

qq_24554949的博客 668

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

初学iOS笔记

xcode6开始没有empty模版了,若使用single模版构建empty则需要补充一些初始化代码 //纯代码初始化视图 self.window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.backgroundColor=[UIColor whiteColor]; [self.win

u012287754的博客 222

iOS开发-------自定义简单的表情键盘(UICollectionView 集合视图)

最近制作自制表情键盘的时候,突然了解到还有一个叫做UICollectionView (集合视图)的类,就研究了一下,确实在做表情键盘上要比用 UIScrollView(滚动视图) 要简单的多,用法与 UITableView(表格视图) 相似,但楼主觉得稍微麻烦那么一点点,就是因为它必须要自顶一个cell,这个cell的类型是UICollectionViewCell,用到的仅仅是初级的用法,高级用法

RITL_Y 4759
上一篇: IOS HTTP同步异步
下一篇: IOS 懒加载,死循环
NameUseNsstring
博客等级 码龄11年 1粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值