iOS开发UIKit框架-可视化编程-XIB

掌握Xcode Storyboard:iOS UI设计的可视化之旅 Storyboard是Xcode中一个用于设计和管理应用程序用户界面的可视化工具。通过Storyboard,开发者可以直观地看到应用程序的流程,并且能够以图形化的方式设计界面。可视化布局:通过拖放组件,直观地设计界面。管理视图控制器:方便地管理应用程序中的视图控制器。支持自动布局:自动适应不同屏幕尺寸和方向。集成动画和过渡:轻松实现界面之间的动画和过渡效果。通过本文的介绍和示例代码,读者应该对如何在Xcode中使用Storyboard进行UI设计有了更深入的理解。 阅读详情

1. Interface Builder 可视化编程

 1> 概述

  GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显示的计算机操作用户界面。

  Interface Builder (简称IB) : 是MAC OS X 平台下用于设计和测试图形用户界面 (GUI) 的应用程序。代码 和 IB 都可以生成 GUI。

  优势: IB 能使开发者简单快捷的开发出符合Mac系列操作系统的GUI。通常你只需要通过简单的拖拽操作来构建UI就可以了。IB 使用Nib文件存储 GUI 资源,在需要的时候,Nib文件可以被快速地载入内存。

 2> iOS可视化编程

  • iOS下可视化编程分为两种方式:xib 和 storyBoard

  • 在使用 xib 和 storyBoard 创建 GUI 过程中,以 XML文件格式存储在Xcode中,编译时生成 nib 的二进制文件。在运行时,nib 文件被加载并且开始创建和实例化GUI元素

2. xib创建及使用

 1> 概述

  • xib 创建 .xib 文件,包括视图布局,以XML格式存储。

  • 程序运行后,.xib 文件中的内容编译为.nib 文件(二进制文件),存储在工程包中

  • .xib 通常以关联方式出现在工程文件中,即在被创建时是伴随一个类(UIKit框架下的类)诞生的

 2> .xib创建

  视图控制器独有初始化方法

  - (instancetype)initWithNibName:(NSString *)nibNameOrNib bundle:(NSBundle *)nibBundleOrNil

  nibNameOrNib:当前控制器相关联的nib文件,如果写nil默认为同名文件

  nibBundleOrNil:当前应用程序包所在文件,如果写nil默认为mainBundle

  在我们使用init初始化(或者new直接创建)控制器的时候,会自动执行控制器的此方法,参数均为默认值执行,所以可不写

 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 2     // 创建window
 3     self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
 4     self.window.backgroundColor = [UIColor whiteColor];
 5     [self.window makeKeyAndVisible];
 6     
 7     // 程序编译时,会将xib文件编译成nib的二进制文件,运行时加载nib文件
 8     // NibName:当前控制器的相关联的nib文件, 如果写为nil,默认查找和控制器名相同的文件名,但是如果xib文件与控制器名不同,则查不到
 9     // bundle:获取程序资源路径,如果写为nil,默认是主路径,因为iOS只有一个主路径,在mac端开发时必须写
10     
11     // 创建根视图
12     RootViewController *rootVC = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]];
13     
14     self.window.rootViewController = rootVC;
15     
16     return YES;
17 }  

 3> 选项卡

  在Xcode工具栏(快捷键command + option(alt) + 0)管理者一组选项卡,用以对Xcode中文件(类文件或者IB文件)进行设置和描述。

  在选中IB文件的情况下Xcode会有六个标签分别负责对选中的内容的信息查看和操作,包括文件基本信息、快速帮助、属性设置等。

 4> 插座变量(Outlet) 

  • 插座变量:用于控制IB中的UI控件。 

   IBOutlet:外联指针,连接插座变量和IB中的UI控件。

  • 设置:选中控件,按住control , 向接口部分中拖拽。

   Connection: 拖拽之后创建的类型(属性、方法、集合属性)。 

   Object:绑定的对象。

   Name: 法名或者属性名字。

   Type:控件类型。

   Storage:控件的内存修饰参数。

 5> 事件关联(IBAction)

  • 动作,用于响应UI控件的触发事件。 

   IBAction,连接方法和IB中的UI控件。 

  • 设置,选中控件,按住 ,向原类接 部分或者实现部分中 拖拽,设置响应 法。 

   Name :方法名。

   Type :方法中的参数类型。

   Event : 触发方法的方式

   Arguments :方法中携带的什么样的参数。 

 6> 代理设置

  • File’s owner : 文件的拥有者,即视图控制器。
  • 设置:右键单击控件,连接代理变量 和 File’s owner
  • 注意 :在拖拽的时候必须拖拽到 File’s owner 。 

  拖拽方式一:

  拖拽方式二:  

3. xib绘制单元格

  • 自定义单元格指的是UITableView 的自定义cell。
  • 通过 xib 可以快速的绘制cell。 
  • 新建UITableViewController 子类, 设置为根视图控制器。
  • 新建一个UITableViewCell 子类,勾选Also create XIB file。
  • 使用 xib 绘制自定义 cell 样式。
  • 设置 cell 的重用标识(zhì)符。

  • 声明和定义重用标识符 
 1 #import "RootTableViewController.h"
 2 #import "RootCell.h"
 3 
 4 @interface RootTableViewController ()
 5 
 6 @end
 7 
 8 @implementation RootTableViewController
 9 
10 // 定义重用标识符(标准版)
11 static NSString * const identifier_cell = @"cell";
  • 注册Cell  
 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     
 4     // 以前普通方式
 5 //    [self.tableView registerClass:[RootCell class] forCellReuseIdentifier:@"cell"];
 6     
 7     // xib 注册cell
 8     [self.tableView registerNib:[UINib nibWithNibName:@"RootCell" bundle:nil] forCellReuseIdentifier:identifier_cell];
 9 }
10 // 返回Cell
11 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
12     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier_cell forIndexPath:indexPath];
13     
14     return cell;
15 }

  记得设置自定义cell的高度

1 // 设置每一行的高度
2 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
3 {
4     return 120;
5 }

4. 自动布局

 1> 概述

  • 自动布局:autoLayout , 不给View 固定的位置, 通过某些规则让View 自己适应自己的位置。
  • iOS6.0之后推出, 在 iOS8.0 自动布局被大幅度优化, iOS9 中新增了许多功能。 

 2> 自动布局中常用的四个选项

 

 3> Stack

  

  • UIStackView, 可以管理多个视图。一次性为多个视图进行约束设置。       
  • Axis : 子视图排布方向。 
  • Alignment :子视图对齐方式。 
  • Distribution : 分布方式。(调整 StackView 的大小 , 切换选项观察) 
  • Space : 子视图的最小间距。 
  • 备注 : 选中多个排列的视图 , 勾选 Stack 即可进行编辑 StackView 选项卡。 

 

 4> Align(设置视图的对齐方式)

  

  • Leading Edges :左对齐。   
  • Trailing Edges :右对齐。
  • Top Edges :上对齐。
  • Bottom Edges :下对齐。
  • Horizontal Centers :纵向中心对齐 
  • Vertical Centers :横向中心对齐。 
  • BaseLine :基线对齐。 
  • Horizontal in Container :以屏幕的纵向中心线对齐。 
  • Vertical Container :以屏幕的横向中心对齐。 
  • 两者结合使用可以让View 的中心点和屏幕的中心点对齐。  

 5> Pin (设置视图的尺寸相关属性)

  

  • 上面的四个方向的设置尺寸代表距离四个方向的最近的视图的距离 
  • 如果对应方向没有视图 , 则视为对应的屏幕方向的距离。Constrain to margins 选项表示是否留下20个点的位置。   
  • Width:视图的宽度
  • Height:视图的高度 
  • Equal Width: 两个视图等宽。
  • Equal Height :两个视图等高。
  • Aspect Ratio: 设置宽高比 

 

 6> Resolve Auto Layout Issues

  • Resolve Auto Layout Issues : 解决自动布局的问题。 
  • Selected Views: 选中的View , 不包含子视图。 
  • All Views in View:选中的View , 包含子视图。
  • Update Frame :更新位置信息。 
  • Update Constraints :更新约束信息。 
  • Add Missing Constraints :忽略约束不足的错误。  
  • Reset to Suggested Constraints :重置被建议的约束。  
  • Clear Constraints :删掉所有的约束。


iOS 开发中的 Storyboard 与 XIB:从入门到实践 本文系统介绍了iOS开发中Storyboard与XIB的核心概念、详细对比和使用方法。Storyboard适合快速原型开发,能直观展示页面跳转关系,但团队协作时易冲突;XIB适合封装可复用控件,文件独立便于维护。文章从工作流程、代码示例到常见问题解决方案进行了详细阐述,并给出了在不同场景下的技术选型建议,如个人项目推荐Storyboard,大型团队项目推荐XIB加纯代码混合开发。最后指出大型项目可以使用多个Storyboard进行模块化开发。 阅读详情

相关推荐

iOS仿微信界面项目实战

UIKit框架主要负责管理应用的界面和用户交互。它以Objective-C和Swift语言进行编程,其中包含了大量的用户界面组件,如按钮、文本框、滑动条等。UIKit还处理了与窗口、视图、视图控制器、动画、图像、颜色管理等相关的功能,为开发者提供了便利。UITabBarController为应用提供一个标签栏,使用户能够切换不同的视图控制器。与导航控制器一样,标签栏控制器也是管理一组视图控制器的一种方式。在每个tab项上,用户可以切换到不同的视图控制器。

weixin_35755640的博客 1220

iOS UIKit - Xib

使用xib开发界面纯代码写界面有时候会降低开发效率,对于一些通用简单的界面,例如程序设置界面,可以使用xib进行开发。 一、关于xib 1. xib和nib xib文件可以被Xcode编译成nib文件,xib文件本质上是一个xml文件,而nib文件就是编译后的二进制文件,该文件将视图等控件对象封装了起来,而在程序运行起来后,这些对象会被激活。 xib文件本质上是一个xml文件,可以用vim或

Seal_Shile的博客 325

汽车电子电气架构

控制器:从多独立 ECU → 域控制器(DCU) → 中央计算平台 + 区域控制器,硬件集成度持续提升,冗余减少;算力:从分散无集中算力 → 按域分配算力 → 全域算力集中,算力量级从 MIPS 跃升至 TOPS,支撑高阶智驾;网络:从低速 CAN/LIN 独占 → 以太网为主、总线为辅 → 高速以太网主干,数据传输速率提升千倍;软硬件:从软硬件深度绑定 → 初步解耦 → 完全解耦(SOA),实现 “硬件预埋、软件解锁”;线束。

LXY_LXY_的博客 1436

xib基础教程,手把手教你搭建炫酷的界面

一、我们首先来看一下效果原型图 二、我们将要搭建出来的框架图 三、接下来我们将要一步步来学习如何完成整个界面的搭建 1、创建空的工程 2、创建一个新的类XIbTestVCViewController,勾选xib 3、启动后加载新创建的类 4、点开新创建的xib文件,它默认展示是个正方形的View 5、选中View,点击设置 6、方便布局随便选一个 ...

weixin_30507269的博客 220

AI辅助游戏开发实战:Kimi K3提升Unity开发效率与代码质量

在游戏开发领域,有限状态机(FSM)是构建角色AI行为逻辑的核心设计模式,它通过定义明确的状态和转换条件,使游戏实体能够智能地响应环境变化。其原理在于将复杂的行为分解为离散的状态节点,并通过事件驱动状态切换,从而实现清晰、可维护的AI架构。这项技术的价值在于显著提升了游戏角色的行为真实感和开发效率,被广泛应用于NPC行为控制、角色动画管理、UI流程等场景。随着AI编程助手的兴起,开发者现在可以借助如Kimi K3这类工具,通过自然语言指令快速生成和优化FSM等复杂系统的代码框架,将更多精力投入到核心玩法与性

weixin_30430677的博客 407

风控IV、AUC、KS python计算代码

df_temp:数据集,Y:是否逾期标签,feas_list:需要计算IV的 变量。2、 按月和不同Y 下的 IV计算。

暮雨听轩的专栏 1618

iOS xib布局

2.multipiler是比例,需要控制顺序1.视图,2父视图,选择宽度比例,默认是1。firstItem 是要约束的视图,secondItem是需要比对的视图。1.多次启动发现启动图和截屏的图片不一致,3.Aspect Ratio是视图宽高比。

georgehenrywilliam的博客 507

Android影像系统架构专家面试指南

传音控股招聘影像系统架构专家,要求8年以上开发经验,5年架构设计经验,精通Android Camera开发及性能优化。该职位需负责手机影像软件架构设计、技术选型及跨平台适配,重点解决"快稳省"体验优化。面试评估聚焦三大维度:技术方面考察HAL层架构设计、多帧合成优化等能力;系统开发关注低光降噪等场景的算力平衡;团队管理侧重跨部门协作与项目交付。候选人需展现对CamX-CHI等架构的深入理解,具备量化分析性能指标的能力,并能主导旗舰机影像项目全周期落地。

郑伟强dev的专栏 943

repo同步代码_苹果全新UI框架来了!可视化编程,自动化减少20%代码量

【新智元导读】SwiftUI是为Apple平台创建用户界面的现代化框架,以前所未有的速度创建漂亮、动态的应用程序。那么,SwiftUI解决了哪些痛点?带来哪些好处?代码风格如何?敬请阅读本文。刚刚结束的苹果WWDC推出了一个对于开发者非常重要的框架:SwiftUI。SwiftUI是一个非常方便快速的构建UI的框架,与最新Xcode设计工具无缝协作,可为所有苹果设备构建UI。开发者通过SwiftUI...

weixin_39752087的博客 110

使用Simulink来模拟多旋翼无人机在风扰动条件下的飞行情况,并分析其稳定性

本教程详细介绍了使用Simulink进行多旋翼无人机风扰动稳定性分析的完整流程。首先构建包含飞行器动力学模型、控制系统和环境模拟模块的系统框架,重点讲解简化动力学方程的实现方法。随后指导设计PID控制器来维持姿态稳定,并添加随机风扰动模型模拟环境干扰。通过设置输入信号和输出显示,最终实现对不同风速条件下无人机控制性能的评估。该实例为无人机控制系统设计提供了实用的仿真方法,强调利用MATLAB工具进行可视化分析和参数优化,以提高系统抗干扰能力和稳定性。

amy_mhd的博客 419

C#上位机实战:PLC与检测设备无缝对接,构建产品质量实时判定系统

本文分享了基于C#开发的汽车零部件质量检测系统实现经验。系统采用三层架构:设备层(PLC/视觉相机/三坐标)、通信层(OPC UA/SDK/串口)和应用层(数据采集/判定/存储)。重点解决了三大技术难点:1)通过OPC UA订阅模式将PLC通信延迟从500ms降至50ms;2)反编译厂商Demo破解视觉SDK对接难题;3)采用时间戳+产品ID实现多设备数据同步。系统上线后质检人员减少67%,误判率降至0.5%,数据追溯效率显著提升。文章强调工业场景下稳定性优先于技术复杂度,实用经验值得借鉴。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 799

iOSDay32之UIKit框架-可视化编程-XIB

1. Interface Builder 可视化编程  1> 概述   GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显示的计算机操作用户界面。   Interface Builder (简称IB) : 是MAC OS X 平台下用于设计和测试图形用户界面 (GUI) 的应用程序。代码 和 IB 都可以生成 GU

孤非的博客 5817

beegfs源码分析

BeeGFS的客户端是由一个内核模块和两个系统服务组成的,这里咱们主要分析内核模块。由于BeeGFS的目录树解析,是在父目录DEntry里找子目录或文件DEntry,逐级迭代完成的,所以在Mount文件系统时,须要从管理节点获取根元数据节点的ID,而后再向根元数据节点查询根目录的DEntry的信息,为后续的目录解析打下基础。获取类似/data/beeond/data/dentries/38/51/root/#fSiDs#/文件fileId的父路径。1.1 FileID的生成。Session网络消息。

wfzy的博客 1913

xib Nib IB 可视化编程详解

Xibs 简单的说,Xib就是拖控件编程,也可以说是可视化编程.相对于代码,使用IB和xib文件来组织UI,可以省下大量代码和时间,从而得到更快的开发速度。如果你曾经受到过微软家Visual Basic或者其他Visual系的可视化界面的荼毒与残害,因此怀疑Interface Builder的纯正血统和工作能力,建议可以看看这些资料以纠正三观:Jean-Marie Hullot的Interface Builder神话以及西装革履的青涩乔帮主在NeXT时亲手用IB构建应用(需要翻墙)。另外,不妨打开你的Mac

岽少的专栏 2435

手把手教你学Simulink——基于Simulink的无感FOC(滑模观测器+PLL)实战

本文详细介绍了基于Simulink的无感FOC(滑模观测器+PLL)实现方法。主要内容包括:1)SMO+PLL原理精讲,阐述滑模观测器核心思想和PLL的作用;2)系统架构全景图展示;3)Simulink建模全流程,从基础FOC框架到SMO和PLL模块的实现;4)关键参数整定指南和工程实践要点;5)仿真结果分析及常见问题解决方案。该方法可有效替代机械传感器,降低成本并提高可靠性,适用于空调压缩机、电动汽车水泵等工业场景。文章还提供了详细的调试建议和动手实践指导。

MHD0815的博客 83

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

iOS个人整理22-可视化编辑-XIB

可视化编辑-XIB

舍本逐末 1761

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

iOS 开发可视化编程之Xib 简述

iOS应用是非常注重用户体验的,在某些方面上应用的成功与否于UI界面是否漂亮,以及应用交互设计上有着非常重要的关系 随着iOS开发发展至今,在UI制作上大概分为三个流派: 1.使用代码手写UI和布局 2.使用Xib文件来组织UI 3.使用StoryBoard故事板 关于三者的优缺点以及应用的场景请移步代码手写UI,xib和StoryBoard间的博弈,以及Interface Buil

qq_24732141的博客 795

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

UI day 13 Xib可视化编程 storyboard可视化编程

Xib可视化编程 1.简单的说,xib就是拖控件编程,也可以说是可视化编程(所见即所得),使用xib编程相对于纯代码可以省下大量的敲代码的时间从而提高了程序的开发速度,Xcode4之后才可以在工程中直接使用xib编程,使用xib编程只是减轻了MVC中V设计的工作量,学好xib有助于了解MVC设计思想 2.IB(interface bulider),以后称之为xib由于xib文件,人能直接识别,

张乾坤 629

[IOS学习] .什么是xib文件 storyboard nib

什么是.xib文件 使用.xib文件可以进行可视化布局,可以直接将UIKit提供的组件拖入.xib文件中的ViewController中,并对组件进行布局。 什么是storyboard storyboard是在IOS5中引入的新功能,能够节省构建App界面的时间。storyboard可以直观的展示App中的每一个页面的布局,以及多个页面的之间的关联。 stor...

zxf15735185131的博客 576

关于xib文件和storyboard文件的那些事儿

关于xib文件和storyboard文件的那些事儿 在ios中,一般建议使用代码布局,因为使用代码布局,后期维护容易,拓展容易,并且可以实现动态加载很多数据,但是代码布局比较繁琐,不适合初学者。Xib布局或者Storyboard布局比较方便。下面介绍一下xib和st...

dichuangheng8094的博客 329

Objective-C: UIKit:XIB

1.使用xib简化创建界面的过程1.1 目标:通过少写或不写代码的情况下,完成界面的设置1.2 实现: 借助于系统Interface Builder完成,IB以前是一款独立的软件,现在整合到xcode中,只要需在创建自定义的控制器时,勾选下面的“Also Create xib file”选项,则系统自动生成与控制器类名相同,后缀为xib的文件1.3 xib文件: 本质是一个xml文件,通过IB这个可

cz_zol的博客 568

ios-xib和storyboard

Xib和storyboard都是一个可视化编程工具,都是苹果公司为了提高我们的开发效率来给我们提供的。xib是轻量级的来描述的软件界面,而storyboard是重量级的,为什么这么说因为xib就是用来描述界面的一小块的内容的,而不能描述多个界面,就是用来描述局部的UI控件,如果要描述多个界面以及界面与界面之间的关系那么我们就用storyboard。无论是xib还是storyboard最后都会生成代

rv0p111 648

IOS总体框架介绍和说明

5. **故事板(Storyboards)** 与 **XIB文件**:故事板是一个可视化工具,允许开发者在一个大画布上布置整个应用的界面。11. **ARKit和机器学习**:对于想要开发增强现实(AR)应用或集成机器学习功能的开发者,苹果提供了ARKit和Core ML这样的框架。13. **App Store**:最终,应用需要提交到App Store,这是苹果公司的数字应用商店,供全球用户下载和购买应用。6. **Core Data**:这是一个强大的框架,用于管理对象图和持久化数据。

weixin_63378697的博客 735

IOS学习之 Xib KVC KVO

1.xib 的基本使用 新建 xib 文件 加载 xib UIView *view = [[[NSBundle mainBundle] loadNibNamed:@"CarView" owner:nil options:nil] firstObject]; [self.view addSubview:view]; Xib 使用注意事项: 如果需要在Xib中添加某个View,只能在initWithCoder 中添加 如果子控件是从 Xib 中创建,是处于未唤醒状态,此时如果想要在某个子

小菜的OnePiece的博客 255

在代码中调用Xib

在代码中调用Xib  现阶段,我体会到,界面的事情交给可视化工具去做,控制的事情交给代码去做,是不错的选择。      IB可视化工具最常规的用法是整个VC搭载一个配套的XIB文件。这个XIB文件对应VC.view。这篇文章记录的是如何灵活应用IB工具创建子View。       我们在看到UI设计稿时,头脑中首先思考的是区分界面功能块,考虑哪些界面元素有内在的相互关系,是否

冰冻三尺,非一日之寒 1172
上一篇: iOS开发-即时通信XMPP
下一篇: 常见的端口速查
Kryptons
博客等级 码龄10年 2粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值