首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

View编程指南(三)

:viewRect]; 设置View的属性 UIView类有几个声明的属性来控制View的外观和行为。...无论是以编程方式创建view还是从nib文件加载view,都可以在viewDidLoad方法中包含其他view配置代码。...为每个view的tag属性分配一个唯一的整数,并使用viewWithTag:方法来定位它。 存储对相关view的引用是定位view的最常见方法,并使访问这些view非常方便。...图显示了一个转换过程中如何导致矩形大小改变的例子。 在图中,外部父view包含旋转的subview。 将subview坐标系中的矩形转换为父坐标系,得到一个物理上较大的矩形。...动画块是启动view相关更改的另一个常见位置。内置到UIView类中的动画支持可以轻松地将更改设置为查看属性。

1.8K30

UIViewController生命周期

一、视图控制器 UIViewController采用懒加载的方式,也就是说第一次访问到view属性时才会加载或创建它。...通过Nib文件加载: Nib文件其实就是xib文件,Storyboard相当于是聚合了多个nib文件,并且添加了对不同的UIViewController之间的segue和relationship...无论是从nib文件加载,还是通过纯代码编写界面,viewDidLoad方法都会执行。我们可以重写这个方法,对通过nib文件加载的view做一些其他的初始化工作。...Screen会触发父UIView上的layoutSubviews 改变transform属性时,当然frame也会变 处于key window的UIView才会调用(程序同一时间只有一个window为keyWindow...从继承关系来看,UIWindow继承自UIView,所以UIWindow除了具有UIView的所有功能之外,还增加了一些特有的属性和方法,而我们最常用的方法,就是在App刚启动时,调用UIWindow的

2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

    UIView 属性 UIView 属性 :  (1) Mode 属性 Mode 属性 : -- 主要作用 : 用于控制 UI 控件内图片的对齐方式, 是否缩放适配控件; -- Scale To Fit..., 最好为不同屏幕尺寸创建对应的图片; (2) Tag 属性 Tag 属性 : 该属性是 控件的 唯一标识, 可以根据该 标识 获取该 UI 控件的引用; (3) Interaction 属性 Interaction...自定义 UI 控件 (1) 自定义组件简介 自定义组件简介 :  -- UIView 基类 : 所有的 UI 控件都继承了 UIView 基类, UI 组件在 UIView 提供的空白区域上绘制具体的细节...: 点击 界面设计文件中的 UIView 根控件, 使用 command + option + 3 打开身份检查器, 由身份检查器上可以看到 其 Custom Class 属性为 UIView, 因此该界面的根控件时...IOS 图标设置 IOS 图片设置 : 直接从文件目录将图片拖动到 Xcode 相应的设置中. -- 设置图标 : 在项目文件视图中, 点击 Images.xcassets, 选中左侧的 AppIcon

    5K30

    View编程指南(二)

    该window横跨设备的整个主屏幕,并在应用程序生命周期的早期从应用程序的主要nib文件(或以编程方式创建)加载。...但是,如果应用程序支持使用外部显示器进行视频输出,则可以创建一个额外的window来在该外部显示器上显示内容。所有其他window通常由系统创建,通常是为了响应特定事件(例如来电)创建的。...另外,这些模板还为应用程序delegate对象中的该window定义了一个出口。您可以使用此outlet访问代码中的window对象。...此属性提供了一种使用nib文件而非编程方式配置window的root view的便捷方法。...如果在从其nib文件加载window时设置此属性,则UIKit会自动将相关VC的view安装为window的root view。此属性仅用于安装root view,不用于window与VC进行通信。

    81510

    iOS常见问题

    1.UIView是iOS系统中界面元素的基础,所有的界面元素都继承自它。它本身完全是由CoreAnimation来实现的 (Mac下似乎不是这样)。...UIView本身,更像是一个CALayer的管理器,访问它的跟绘图和跟坐标有关的属性,例如frame,bounds等 等,实际上内部都是在访问它所包含的CALayer的相关属性。...动画树,这是一个中间层,系统正在这一层上更改属性,进行各种渲染操作。 显示树,这棵树的内容是当前正被显示在屏幕上的内容。 这三棵树的逻辑结构都是一样的,区别只有各自的属性。...这个方法就会加载或者创建一个view对象,赋值给view属性。 loadView默认做的事情是:如果此ViewController存在一个对应的nib文件,那么就加载这个nib。...根据上面的文档可以知道,有两种情况: 1、如果你用了nib文件,重载这个方法就没有太大意义。因为loadView的作用就是加载nib。如果你重载了这个方法不调用super,那么nib文件就不会被加载。

    65930

    《iOS UI 开发捷径 利用 Interface Builder 高效、优雅地开发 UI》 读书笔记第1章 Interface Bundle 概要第2章 使用 Interface Builder第3

    第1章 Interface Bundle 概要 ---- Bundle 一种标准化的层次结构,保存了可执行代码及代码所需要的资源。...在源文件的 loadView() 方法里设置该 VC 的 View 属性为这个自定义的 View。...方式加载 通过 UINib 方式加载 使用与UIView子类源文件关联的xib Bundle - (NSArray *)loadNibNamed:(NSString *)name...对应代码为: testView.autoresizingMask = [.flexibleRightMargin, .flexibleBottomMargin] 外框的 上、下、左、右如果选中,则UIView...} } } IB 文件的加载过程 Bundle 和 UINib 将 nib 加载到内存 解固化并实例化 nib 文件里对应的对象 建立 connections (outlet、action) 调用

    2.5K80

    【IOS 开发】基本 UI 控件详解 (UIDatePicker | UIPickerView | UIStepper | UIWebView | UIToolBar )

    属性值 : 国际化设置相关属性, 通常使用默认的设置即可; (3) Interval 属性  Interval 属性值 : 设置两个时间选项的时间间隔, 仅当采用 Time, Date and Time..., Count Down Timer 三个属性时有效; (4) Constraints 属性  Constraints 属性 : 设置控件的最小时间 和 最大时间; (5) Timer 属性  Timer...*/ //设置每个 UIPickerView 中每列 每行 的选项 UI 控件 - (UIView *) pickerView:(UIPickerView *)pickerView viewForRow...属性  detection 属性 :  -- Links : 自动识别超链接, 点击超链接进入该页面; -- Address : 自动识别网页上的地址; -- Phone Numbers : 自动识别电话号码...= YES; -- 生成对话框显示加载错误内容 : //生成对话框 显示 加载失败内容 UIAlertView * alertView = [[UIAlertView alloc

    4.9K40

    六天完成一个简单iOS App - 第二天

    通过观察登录界面,我们发现背景图片是提供好的,因此需要使用UIImageVIew设置背景图片,另外可以将登陆界面分为三部分,每一部分用UIView当载体存放,只要View内部的控件布局好了,只需要管理三个...如果button是从storyboard或者xib加载会调用aweakfromnib方法,我们可以在aweakFromNib中对控件进行一些统一的设置,在layoutSubviews中设置控件内内容的位置...账号密码输入框登录按钮布局 这部分的布局也很简单,这里图片中提供了textfield的背景图片,所以这里我们先用UIImageView将背景图片显示,然后在在图片上添加一个透明的textfield,所以...登录注册拼接 如果想点击button实现动画,我们需要修改view左边线与左边屏幕的约束,获得约束属性,将View左边线与屏幕左边的距离从0修改为负一个屏幕宽度,当然也需要添加登陆View右边线和注册View...range范围的属性, 重复设置同一个范围的属性, 最后一次设置才是有效的(之前的设置会被覆盖掉) - (void)setAttributes:(nullable NSDictionary<NSString

    2.1K50

    didReceiveMemoryWarning iOS开发

    这个方法的默认实现是这样:先寻找有关可用的nib文件的信息,根据这个信息来加载nib文件,如果没有有关nib文件的信息,默认实现会创建一个空白的UIView对象,然后让这个对象成为controller的主...二、viewDidLoad 这个函数在controller加载了相关的views后被调用,而不论这些views存储在nib文件里还是在loadView函数中生成。...由于controller通常保存着与view(view指controller的view属性)相关的对象(一般是view的子view)或者其他运行时创建的对象的引用,所以你必须使用这个函数来放弃这些对象的所有权以便内存回收...但不要释放那些难以重建的数据(不要在这个函数中释放view)。 通常controller会保存nib文件建立的views的引用,但是也可能会保存着loadView函数创建的对象的引用。...网上对这个函数的描述含含糊糊,看了等于没看。 另外:如果controller存储了其他object和view的引用,你还得在dealloc方法中释放这些内存。

    2.6K30

    iOS中Block的用法,举例,解析与底层原理(这可能是最详细的Block解析)

    在Block中访问一个外部的局部变量,Block会持用它的临时状态,自动捕获变量值,外部局部变量的变化不会影响它的的状态。...如上面 2.3.2节在CellView.h中@interface位置声明一个Block型的属性,为了设置激活事件调用Block,接着我们在CellView.m中作如下设置: // 激活事件 #pragma...因为UIView未强持有block,所以这个block只是个栈block,而且构不成循环引用的条件。栈block有个特性就是它执行完毕之后就出栈,出栈了就会被释放掉。...在非 ARC 中,捕获了外部变量的 block 的类会是 NSStackBlock,放置在栈上,没有捕获外部变量的 block 时与 ARC 环境下情况相同。...从main函数的main.cpp中看,__main_block_impl_0的 FuncPtr 指向了函数__main_block_func_0。

    1.9K30

    关于IB_DESIGNABLE IBInspectable的那些需要注意的事

    也是随着Xcode 6 新加入的关键字。 这两个关键字是用在我们自定义View上的,目前暂时只能用在UIView的子类中所以系统自带的原生的那些控件使用这个关键字都没有效果。...但是这个类必须是UIView或者NSView的子类。通过@IBInspectable可以定义动态属性,即可在Attributes inspector面板中可视化修改属性值。...class还是写自己本身,用那个类来加载我们这个View,这样就可以不崩溃,不会无限递归了。但是问题又来了,我们无法在Xib/Storyboard上实时预览到我们的View了。...他们的加载方式也不同,initWithNibName方法:是延迟加载,这个View上的控件是 nil 的,只有到需要显示时,才会不是 nil。...欢迎大家和在微博上和我多多交流@halfrost 更新: 下面这一段要感谢@Andy矢倉 微博上面指点我,其实系统的子类可以这么做:抽了几个常用的控件的公共类,顺便用External剥离常用属性,更复杂的移步这个库

    1.6K30

    【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )

    UISegmentedControl 控件属性 (1) Style 属性 Style 属性 :  -- Plain : 分段控件使用最普通的风格; -- Bordered : 在最普通风格上添加一圈边框...属性 Tittle 属性 : 每个 Segment 都有一个 Tittle 属性, 就是分段按钮每个按钮的标题; (7) Image 属性 Image 属性 : 为不同的 分段 Segment 设置图片..., (活动控件 静态控件 被动控件); (2) 图片显示属性 设置图片显示的属性 :  -- image (普通) : 访问或设置该控件显示的图片; -- HighlightedImage (高亮)...图片浏览器示例 (1) API 简介 手势事件 :  -- 设置手势点击响应 : 每个 UIView 都有一个 userInteractionEnabled 属性为 YES; //设置大图片可以相应手势点击...White : 大的 白色 风格; -- White : 白色风格; -- Gray : 灰色风格; (2) Color 属性 Color 属性 :  -- 作用 : 设置进度条的颜色, 设置该属性会覆盖之前选中的风格中的颜色

    3.2K40

    EAIntroView–高度可定制的iOS应用欢迎页通用解决方案

    到想要展示的视图上(见下文) 每一个用来展示的基本页面都具有 * background(有交叉的页之间的过渡) * 在background上定制iOS7运动的效果(视差) * title视图(y 坐标...://自定义视图 pageWithCustomViewFromNibNamed://自定义nib 每个页面上的事件 pageDidLoad 页面加载 pageDidAppear 页面显示 pageDidDisappear...:animated://设置当前显示的界面以及动画 使用: 第一步: 创建界面 每一个界面需要通过[EAIntroPage page]来创建,你可以自定义属性,所有的属性都是可选的.或者你可以通过你自定义的...view(可以是nib),使用这种方式大多数选项就被忽略了.例如: // 基本的创建方式 EAIntroPage *page1 = [EAIntroPage page]; page1.title = @...1.3.0 开始支持Storyboard/IB 拖拽UIView 到IB文档 设置它的class为EAIntroView 创建viewcontroller 的IBOutlet 属性, @property

    80960

    两种通过Plist加载图片的方法及问题,九宫格的算法,字典转模型1. 序列帧动画实现2. 图片浏览器-两种加载plist的方式3. 图片浏览器-内存问题4 MVC简单介绍和类前缀5 应用管理-两种加载

    4 MVC简单介绍和类前缀 模型 : 数据 视图 : 负责显示 控制器 : 处理逻辑,如跳转界面 类前缀苹果推荐使用三个或三个以上字母,防止重名 5 应用管理-两种加载xib的方式 从 NSBundle...加载XIB,只需要在第一个参数传入 XIB 的文件名,注意:没有扩展名 方法1,iOS 3.0 的方法 UIView *appView = [[NSBundle mainBundle] loadNibNamed..."" //第一个参数:XIB的名字 //第二个参数:Bundle 名,如果传入 nil,会自动从 mainBundle 获取 UINib *nib = [UINib nibWithNibName:@"CZAppView...UIView *appView = [nib instantiateWithOwner:nil options:nil].lastObject; 6-应用管理-管理XIB的类 管理xib的类一般做两个事件...把加载xib的实现细节封装在此类中 把子控件设置数据的代码也封装在此类的内部,不要放在外面 #import @class HMApp; @interface HMAppView

    87630

    iOS开发中的手势体系——UIGestureRecognizer分析及其子类的使用

    从其手势对象上移除: - (void)removeTarget:(nullable id)target action:(nullable SEL)action; 上面两个方法是十分有意思的,因为addTarget...:(NSUInteger)touchIndex inView:(nullable UIView*)view; 下面的几个BOOL值的属性,对于手势触发的控制也十分重要: (1) @property(nonatomic...) BOOL cancelsTouchesInView; 上面的属性默认为YES,当这个属性设置为YES时,如果识别到了手势,系统将会发送touchesCancelled:withEvent:消息在其时间传递链上...属性用于控制这个消息的传递时机,默认这个属性为NO,此时在触摸开始的时候,就会发消息给事件传递链,如果我们设置为YES,在触摸没有被识别失败前,都不会给事件传递链发送消息。...,我们可以设置的属性如下: //设置缩放比例 @property (nonatomic)          CGFloat scale;  //设置捏合速度 @property (nonatomic,readonly

    2K20

    View编程指南

    每个应用程序至少有一个Window,在应用程序的主屏幕上显示应用程序的用户界面。 如果外部显示器连接到设备,应用程序可以创建另一个Window来在该屏幕上显示内容。...当你在运行时加载一个nib文件的时候,它里面的对象被重新编译成实际的对象,你的代码可以通过编程来操作。 Interface Builder极大地简化了您在创建应用程序的用户界面方面所做的工作。...每个View都有一个对应的layer对象,可以通过该view的layer属性访问。 (因为bar按钮项不是View,所以不能直接访问它的图层。)...你可以在UIView对象上动画的属性如下: Frame - 使用此动画设置为view更改位置和大小变化。 bounds - 使用这个动画来改变view的大小。...view controller提供了许多重要的行为,例如协调屏幕上的view显示,协调从屏幕上删除这些view,响应低内存警告释放内存,以及响应接口方向更改而旋转view。

    2.3K20

    翻译_iOS视图编程指南(View Programming Guide for iOS)之介绍

    官方最新:View Programming Guide for iOS 介绍## 关于窗口和视图#### 在iOS中,你可以使用窗口和视图将你应用的内容呈现在屏幕上。...如果这些还是不能满足你的需要,你可以自定义视图以及自我管理绘画和事件处理。 视图管理应用可视化的内容#### 每一个视图都是UIView类的实例或者子类,视图在应用的窗口中负责管理矩形的区域。...大多数,应用的窗口从不发生改变,窗口一旦创建便保持不变,只有在窗口上的视图发生变化。每个应用至少有一个窗口用以呈现设备主屏幕上的用户交互。...系统规定了用以不同组织视图中呈现模态视图和过渡的标准动画。然而,动画的许多属性也可以直接用来动画。例如,通过动画,你可以改变视图的透明度、屏幕上位置、尺寸、背景或者其他属性。...使用Interface Builder,你会将你的视图存放在nib文件中,这种文件是一种存储视图和其他对象原始版本关系的资源文件,一旦在runtime中加载nib文件,nib文件中的对象就会重新组成可代码操作的具体对象

    59030
    领券