
iOS之UI
文章平均质量分 74
程序员的修养
好好学习
展开
-
APP生命周期
APP生命周期线程有状态的变化,app也有,下面我们先看看应用的几个状态一、应用的状态1、app的状态Not running:app未运行的状态;Inactive:app处于前台,但是没有接收事件Active:app处于前台,开始接收事件Background:app运行在后台,但是正在处理相关后台逻辑Suspended:程序在后台不处理相关逻辑app状态变化的时候,系统会以delegate或通知的方式通知我们,我们可以做出相应的处理,下面我们看一下app的deleg原创 2021-05-24 08:52:51 · 1452 阅读 · 1 评论 -
视图布局与重绘
视图布局- (void)layoutSubviews- (void)layoutIfNeeded- (void)setNeedsLayoutlayoutSubviews在以下情况下会被调用1、init初始化不会触发layoutSubviews2、当view的frame发生改变的时候,会触发layoutSubviews,(这里的改变指的是fram的大小,如果改变frame的x,y的值并不会触发layoutSubviews)3、addSubview的时候(如果frame值为0的时候,addSu原创 2021-04-14 14:44:40 · 206 阅读 · 0 评论 -
自定义容器控制器
自定义容器控制器容器控制器可以添加并管理子视图控制器,它需要管理子视图控制器视图的进入、移除界面;当然我们也可以自定义容器控制器,因为系统给每一个UIViewController提供了一个childViewController属性。但是首页我们明白自定义容器VC的目的是什么? 目的是在同一个屏幕上展示不同的VC的需求为了实现这一目的,我们在自定义容器VC时,需要考虑以下内容不同VC切换的效果容器VC可以正常显示子VC的view子VC可以接收viewDidLoad:等生命周期方法、屏幕旋转的方法等原创 2021-03-30 08:59:53 · 518 阅读 · 0 评论 -
UIViewController面试必备
UIViewController你应该知道的事情1、生命周期vc初始化方法,view没有初始化initWithCoder:使用StoryBoard创建ViewController的生命周期如下,StoryBoard内部生成nib文件,将nib信息放在Coder中,调用initWithCoder:初始化ViewController及其view属性-[ViewController initWithCoder:]-[ViewController awakeFromNib]-[ViewCont原创 2021-03-24 11:53:22 · 165 阅读 · 0 评论 -
iOS 关于View的一切
iOS 关于View的一切app展示给用户的页面,一般都是由windows和Views来展现的,windows基本上没有视觉上可以展示的内容,它是为views提供了一个容器,来承载views,而view是UIView的实例,它管理着window中的一块长方形区域,可以用来展示图片、文字、按钮以及它们的组合等等。1、Viewview对象是UIView类的实例,用来展示可视化的内容。视图对象定义了一个矩形区域,并且负责该区域内容的绘制、事件的处理及子视图的布局。每个view对象都对应一个layer对象,l原创 2020-08-14 17:47:30 · 604 阅读 · 0 评论 -
UINavigation Bar总结
UINavigation Bar1、概览Navigation bar本身是一个组织着navigaitn界面的view,由UINavigation controller管理。每个navigation controller都会创建属于自己的navigation Bar来管理自己的navigation bar的内容,一般使用navigation bar,都是通过UINavigation controller来创建、显示及管理。2、结构结构:UINavigation Bar也是一个栈结构,存放着UInav原创 2020-08-14 17:45:18 · 368 阅读 · 0 评论 -
iOS label根据显示内容自适应大小
iOS label根据显示内容自适应大小原文 http://www.cnblogs.com/czq1989/p/5019720.html1 - (void)setupLabel { 2 //准备工作 3 UILabel *textLabel = [[UILabel alloc] init]; 4 textLabel.font = [UIFont system原创 2016-04-27 15:49:33 · 4178 阅读 · 0 评论 -
iOS UIKit框架详解
iOS UIKit框架大家没事看一眼,在心里有个印象 1. 简介: UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面( UI )接口、应用程序对象、事件控制、绘图模型、窗口、视图和用于控制触摸屏等的接口。(PS1: 可以认为是操纵界面的一个API库)框架的入口: #import <UIKit/UIKit.h> 当引入此头文件后,便可以在程序里使用任转载 2017-03-20 14:24:34 · 11562 阅读 · 0 评论 -
UIView
(1)view基本介绍 先来看看官方API的解释:The UIView class defines a rectangular area on the screen and the interfaces for managing the content in that area. At runtime, a view object handles the rendering of any原创 2016-10-26 15:42:42 · 367 阅读 · 0 评论 -
UITableView优化
一、UITableView优化总结 UITableView的优化主要从三个方面入手: (1)提前计算并缓存好高度(布局),因为heightForRowAtIndexPath:是调用最频繁的方法; (2)异步绘制Cell,尽量不要用 自带的ContentView; (3)动时按需加载,这个在大量图片展示,网络加载的时候很管用! (4)正确使用reuseIdentifier来重用Cel原创 2016-10-24 20:54:31 · 259 阅读 · 0 评论 -
UITabBar
UITabBar 1.介绍 在一个app中,UITabBar对象控制在不同的任务、试图或模式间的切换,标签栏包含于标签栏控制器中,这是一个可以管理一系列自定义视图显示的程序对象。 一般和UITabBarConmutroller对象结合使用(也能独立使用tab bars作为独立控制),tab bars总是显示在屏幕的底部,并且包含一个或多个UITabBarItem对象。tab bars的外观原创 2016-10-13 18:32:52 · 848 阅读 · 0 评论 -
UIActivityIndicatorView
UIActivityIndicatorView 使用一个活动指示器来显示一个任务正在进行中。活动指标出现“齿轮”,要么是旋转或停止。 (1)初始化活动指示器 initWithActivityIndicatorStyle:初始化活动指示器 ,并返回活动指示器对象,管理指示器 UIActivityIndicatorViewStyleWhiteLarge, UIActivityIndica原创 2016-10-14 09:45:38 · 360 阅读 · 0 评论 -
UIScrollView
UIScrollView 一、官方文档介绍 功能:为显示大于手机频幕的内容提供支持,它允许用户通过手势滑动或捏合,来显示内容。 概述:UIScrollView是UITableView和UITextView的父类。 UIScrollView的核心理念是,它是一个可以在内容视图之上,调整自己原点位置的视图。它根据自身框架的大小,剪切视图中的内容,通常框架是和应用程序窗口一原创 2016-10-19 09:11:02 · 411 阅读 · 0 评论 -
UIWebView基础篇
UIWebView 一、介绍 功能:在app中嵌入web内容(除了HTML内容,UIWebView对象可以用来显示其他内容类型,如幻灯片、PDF、和pages文件。但是最好的呈现简易和富文本的是UITextView)。该UIWebView能完成的功能:在web页面中用类方法前进或后退,也能与web页面进行交互。 注意:iOS 8之后,使用WKWebView代替UIWebV原创 2016-10-17 19:05:52 · 560 阅读 · 0 评论 -
模态视图介绍
以前总结过视图迁移的四种方式:UINavigationController使用栈控制的控制器的切换、UITabBarController显示的平行的控制器的切换、模态视图的切换等等 今天看到一篇介绍模态视图的文章保存下来,没事的时候用来看两眼一、主要用途 弹出模态ViewController是iOS变成中很有用的一个技术,UIKit提供的一些专门用于模态显示的ViewController,如UI转载 2017-03-22 08:51:58 · 1112 阅读 · 0 评论 -
视图的切换
(void)addSubview:(UIView *)view //添加子视图(void)removeFromSuperview //从父视图中移除(void)bringSubviewToFront:(UIView *)view //移动指定的子视图到最顶层(void)sendSubviewToBack:(UIView *)view //移动制定的子视图到后方,所有子视图的下面(voi转载 2016-03-30 16:00:31 · 337 阅读 · 0 评论 -
UIAlertController
UIAlertController iOS2.0之后,使用UIAlertView来设置提示框,使用initWithTitle:message: delegate:self cancelButtonTitle:otherButtonTitles:初始化alertView,然后使用-show显示alert。如果想获取button则需要使用delegate方法。(UIActionShe原创 2017-05-26 13:53:34 · 460 阅读 · 0 评论 -
UIDatePicker
UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期、时间和持续时长的输入。日期选取器的各列会按照指定的风格进行自动配置,这样就让开发者不必关心如何配置表盘这样的底层操作。你也可以对其进行定制,令其使用任何范围的日期。用途:根据需要选择不同的时间轮显示模式,主要用于显示时间让用户选择;但是当模式为UIDatePickerMod原创 2016-10-26 16:59:16 · 476 阅读 · 0 评论 -
UISlider
UISlider滑块控件使用户可以拖住滑块在某个轨道上滑动来改变值,可以用于设置音量大小、音乐视频的播放进度的控制等(1)初始化:initWithFrame:(2)设置最大值maximumValue,默认为nil(3)设置最小值minimumValue,默认为nil(4)获取滑块的当前值value(5)设置初始值:- (void)setValue:(float)value animated:(BO原创 2016-10-26 09:33:57 · 406 阅读 · 0 评论 -
UICollectionView
UICollectionView内容整理1、UICollectionView的工作流程 使用一个控件无非是获得数据,然后布局,最后显示;UICollectionView与UITableView类似是DataSource和Delegate驱动的。UICollectionView从数据源获取Cell,再从UICollectionViewLayout获取对应的layout attributes,最后根据原创 2017-08-25 10:06:10 · 523 阅读 · 0 评论 -
sizeToFit和sizeThatFit
一、介绍 sizeToFit会计算出最优的尺寸,并且更改自己的size sizeThatFits也会计算出最优的尺寸,但是不会更改自己的size二、官方的API解释 // return ‘best’ size to fit given size. does not actually resize view. Default is return existing view size - (原创 2017-11-22 16:09:37 · 880 阅读 · 0 评论 -
init,initialize,initWithCoder:,initWithFrame:各方法的区别和加载顺序
1、先把OC的类分清楚各有什么方法 • 普通类的方法 init initialize: • 控制器类的方法 init initialize: initWithCoder: • UI控件类的方法 init initialize: 当类第一次接受到消息时调用一次 initWithCoder: 从文件中加载UIView时执行 awakeFromNib:从x转载 2018-01-09 11:45:54 · 1115 阅读 · 0 评论 -
ScrollView
ScrollView 1.ScrollView简介。 ScrollView属于UIScrollView类,是容器类型的视图,有两个子类——UITextView和UITableView,他们在内容超出屏幕时提供水平或垂直滚动条。 2.ScrollView的使用 将需要展示的内容添加到UIScrollView中。 设置UIScrollView的contentSize属性,即UIScrollVi原创 2016-03-07 13:18:26 · 478 阅读 · 0 评论 -
UIToolBar
UIToolBar 一、官方文档 1.介绍 toolbar控制一个或多个button的显示;当点击时,toolbar可以呈现短暂的高亮或者无变化。UIToolbar是我们经常用的控件之一,例如:navigation bar 上面加一个UIToolbar ,或者 view 的底部加一个UIToolbar,或者在键盘的上面加一个UIToolbar等等。(在UINavigatio原创 2016-10-18 11:25:24 · 549 阅读 · 0 评论 -
UIProgressView
UIProgressVIew是一个进度条。有两种样式,一种是UIProgressViewStyleBar一种是UIProgressViewStyleDefault,两者无大的区别。UIProgressView *pro= [[UIProgressView alloc]initWithFrame:CGRectMake(10, 300, self.view.frame.size.width-20, 1原创 2016-10-06 14:44:12 · 527 阅读 · 0 评论 -
显示一个提示框,几秒后显示框自动消失
问题:显示一个提示框,几秒后显示框自动消失 方案: 1.使用AlertView提示,但是使用AlertView提示后,需要点一个按钮才会消失。 此方案不行,因为提示框不会自动消失 2.向页面添加一个Label,然后使用延时函数,移除label //添加要用到的Label UILabel * label = [[UILabel alloc]initWithFrame:CGRectMa原创 2016-06-13 10:47:22 · 40687 阅读 · 1 评论 -
UIScrollView
UIScrollView 1、UIScrollView同其他视图一样,需要一个控制管理器管理或添加到某个视图中。 2、使用步骤 (1)必须设置contentView,它决定了UIScrollView可以滚动的区域的大小。 (2)必须设置UIScrollView显示和滚动的子视图。 (3)根据需要设置UIScrollView的显示效果。例如:是否显示水平或竖直的滚动条,滚动的弹性效果,滚动原创 2016-06-26 07:58:06 · 351 阅读 · 0 评论 -
viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear
iOS视图控制对象生命周期: init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear的区别及用途 init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用; viewDidApper-UIView转载 2016-06-09 13:57:50 · 558 阅读 · 0 评论 -
UIActivityIndicatorView官方文档及使用
UIActivityIndicatorView (1)继承UIView,使用activity indicator指示一个任务正在进行中,展现为旋转的小菊花, Initializing an Activity Indicator - initWithActivityIndicatorStyle: Managing an Activity Indicator - startAnimatin原创 2016-05-02 08:59:28 · 306 阅读 · 0 评论 -
UIPageControl
UIPageControl (1)继承 NSObject UIResponder UIView UIControl UIPageControl 从图中可以看出 UIPageControl继承了UIView、UIControl.它的作用是创建并且管理页的控制,一个 page control显示一系列原创 2016-05-02 08:56:28 · 359 阅读 · 0 评论 -
Tab Bar Item
Tab Bar Item tabBarItem时UIViewController的属性,作用是当一个view controller加入到一个tab bar controller中时,这tab bar item代表这个view controller, 默认值是显示view controller的题目 注意:(1)如果不使用tab bar controller显示一个view contro原创 2016-05-01 07:57:56 · 514 阅读 · 0 评论 -
常见的页面跳转的方法
1.//方法一presentViewController;例如 [self presentViewController:detail animated:YES completion:nil]; //self.window.rootViewController=[[ViewController alloc]init]; 2.//方法二UINavigation要求使用导航框架;例如:[sel原创 2016-03-01 17:10:26 · 960 阅读 · 0 评论 -
UIButton 防止多按钮同时按下
转载自:http://kevin-wu.net/ios-tips-rare-operation-test-methods/ 上次在开发一个iOS应用的时候,项目招了一个非常专业的iOS应用测试团队。 这个测试团队极度专业,他们能通过各种手法测试出一些非常罕见的操作上的Bug。 我们称之为Rare Operation Bug。简单总结一下他们常用的操作测试手法:同时按下多个显示在界面上的按钮,然转载 2016-03-21 10:07:47 · 366 阅读 · 0 评论 -
UIKit Dynamics
转自: From:http://blog.youkuaiyun.com/baecheung/article/details/11911061本文涉及到的WWDC2013 Session有 Session 206 Getting Started with UIKit Dynamics Session 221 Advanced Techniques with UIKit Dynamics 什么是UIKit动力转载 2016-03-20 11:10:02 · 367 阅读 · 0 评论 -
UIPickerView
前言:UIPickerView是一个选择器控件,它可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活。UIPickerView直接继承了UIView,没有继承UIControl,因此,它不能像UIControl那样绑定事件处理方法,UIPickerView的事件处理由其委托对象完成。 正文:UIPickerView控件常用的属性和方法如下: n转载 2016-07-20 16:34:44 · 282 阅读 · 0 评论 -
UIWebView
UIWebView 1.用处:加载网页、html 文件或html字符串基本属性:scalesPageToFit:web view是可缩放的。 datadetectortype:见某些类型的数据设置为可以单机链接基本方法: (1)以下四个方法主要是控制加载的网页的前进后退等 - (void)reload;重新加载原创 2016-09-14 14:56:08 · 333 阅读 · 0 评论 -
navigation导航中导航栏的设置
参看:http://blog.youkuaiyun.com/mad1989/article/details/41516743 使用导航navigation时,下一页的标题的设置 1.在进入push下一页时,指定标题myViewContoller *view=[[myViewContoller alloc]init]; [sself.navigationController pushViewControll原创 2016-09-07 10:21:14 · 1639 阅读 · 0 评论 -
UITableView常用方法、属性总结
数据源(dataSource)和代理(delegate) 1.介绍 UITableView需要一个数据源(dataSource)来显示数据 ,UITableView会向数据源查询一共有多少行数据以及每一行显 示什么数据等。没有设置数据源的UITableView只是个空壳。凡 是遵守UITableViewDataSource协议的OC对象,都可以 是UITableView的转载 2016-10-24 14:13:53 · 357 阅读 · 0 评论 -
UIWebView与JS的深度交互--第三方框架
按照本地的CSS文件展示一串网络获取的带HTML格式的只有body部分的文本,需要自己拼写完整的HTML。除此之外,还需要禁用获取的HTML文本中自带的 《 img 》 标签自动加载,并把下载图片的操作放在native端来处理,并通过JS将图片在Cache中的地址返回给UIWebview。之所以要把图片操作放在native端做的好处在于:1、可以进行本地缓存,下次进入这篇文章可以直接从缓存读取,提高原创 2016-10-18 08:55:41 · 357 阅读 · 0 评论 -
UIPageControl
UIPageControl 在页面下方显示一系列点,每个点对应一个页面UIPageControl : UIControl numberOfPages; // 用于设置总共有的页数,默认0 NSInteger currentPage; // 设置当前页,默认0 hidesForSinglePage; // bool值,如果只有一页是否隐藏指原创 2016-10-26 17:28:56 · 526 阅读 · 0 评论