容器视图控制器 容器视图控制器管理和展示它的子视图集合--或者子控制器集合--以一种自己定义的方式. 系统定义的容器视图控制器的样例有标签栏视图控制器.导航栏视图控制器和分栏视图控制器(查看Tab Bar.Navigation Bar和Split View Controller来学习很多其它关于这些元素的内容). API NOTE 查看UIViewController Class Reference学习关于在你的代码中定义自己定义的容器视图控制器的内容. 容器视图控制器没有提前定义的外观和行为.…
弹出框 弹出框是当人们点击一个控件或屏幕上一个区域时显示的一个暂时的界面. API NOTE 在iOS 8及以后的系统中.你能够使用UIPopoverPresentationController来显示一个弹出框. UIPopoverPresentationController定义了一个协议来让你调整你的弹出内容的显示风格去适应当前的显示环境.比方说.在水寻常规环境下.你的内容能够在弹出框中显示:在水平紧凑环境下,你的内容能够在一个全屏的模态视图中显示. 一个弹出框: 是一个自包括的模态视图 在水…
多任务处理 多任务处理让人们在屏幕上(以及合适的iPad模式)查看多个app,而且在近期使用的app中高速地切换. 在iOS 9中.人们能够使用多任务处理UI(例如以下所看到的)来选择一个近期使用的app. 在多任务处理环境中的成功取决于与设备上其它app的和谐共处.在高层面上.这意味着app应该: 用心地优化资源的使用来避免使用过多的CPU.内存.屏幕控件和其它资源 优雅地处理其它app的干扰和声音 停止和又一次開始--即过渡到后台或从后台过渡--高速而平滑 当没有在前台时对行为负责 以下的特…
搜索栏 搜索栏接收用户输入用于搜索的文本(例如以下,带有占位文本). API NOTE 查看UISearchBar学习怎样在你的代码中定义搜索栏.查看UISearchDisplayController学习很多其它关于显示搜索栏的内容. 搜索栏能够显示一些可选的元素.比如: 占位文本.这个文本可能陈述了控件的功能(比方上面显示的"搜索")或提醒用户他们在何种环境搜索(比方"Goodle"). 书签button. 这个button能够提供一个訪问用户想要方便再次找到的信…
系统button 系统button运行一个app特定的动作. API NOTE 在iOS 7中,UIButtonTypeRoundedRect被又一次定义成UIButtonTypeSystem.查看UIButton学习很多其它关于在你的代码中定义一个系统button的内容. 一个系统button: 默认没有边框或者背景外观 能够包括一个图片或者文本标题 支持自己定义外观.比方边框或者背景图片(使用UIButtonTypeCustom类型的button并提供一个自己定义的背景图来加入自己定义的外观…
编辑菜单 用户能够显示一个编辑菜单来在文本视图.网页视图和图像视图运行诸如剪切.粘贴和选择的操作. 你能够调整一些菜单的行为来在你的app中给用户给多的内容控制.比方你能够: 指定哪一个标准菜单命令对当前的环境合适 在菜单显示之前决定菜单的位置这样你就能够保护你app UI中重要的部分免于被遮挡 当用户双击来显示菜单时决定默认选中的对象 你不能改变菜单它自己的颜色和形状. 查看Copy, Cut, and Paste Operations获取怎样在代码中实现这些行为的信息. 为了确保你app中的…
Wallet Wallet(钱包)帮助人们查看和管理Pass(凭证),这是一种相似于登机牌.优惠券.会员卡.奖励卡和各种票的物理凭证的数字替代.Wallet也同意人们加入信用卡.借记卡和储值卡来和Apple Pay一起使用.在你的app中.你能够创建一个Pass,将其分配给用户,然后当内容更改时更新它. PassKit 框架使自己定义内容来接收Pass以及当用户的Pass库中有它的时候使用Pass变得easy. (查看Wallet Developer Guide来学习关于Wallet的主要技术以…
分段控件 分段控件是一组线性段.每一个button相应的功能能够显示一个不同的视图. API NOTE 查看UISegmentedControl来学习很多其它关于在你的代码中定义一个分段控件的内容. 一个分段控件: 组合两个或很多其它的分段,其宽度是基于分段总数按比例分的 能够显示文本或图片 使用分段控件来提供紧密相关而又相互排斥的选项. 确保每一个分段都易于点击. 给每一个分段维持44*44的舒适的点击区域.限制分段的数量.在iPhone上,分段控件的分段数应该小于等于5. 尽可能地使每一个分…
1. 引言1.1 译者自述 我是一个表达能力一般的开发员,不管是书面表达,还是语言表达.在很早以前其实就有通过写博客锻炼这方面能力的想法,但水平有限实在没有什么拿得出手的东西分享.自2015年7月以来因工作及个人的兴趣开始逐步转向iOS开发,在这期间系统的学习了下斯坦福桥大学Paul老爷子关于iOS7,iOS8的视频公开课及苹果官方的开发文档.当然也包括这篇<iOS Human Interface Guildlines> ,半年的学习下来碰到最大的问题就是遗忘,很多知识点学过没多久就忘记了,必…
最近离开了老东家,整理整理思路,因为一直做的是微信公众号相关的产品对app的东西有一段时间没有做过了,所以又看了一遍iOS human interface guidelines,看到user control的时候有了一些感慨,所以用这篇文章记录下.可能有些同学没有看过相关的内容这里先把中文版(@喵大神经)的相关小节贴出来: 在iOS内部,是用户--而不是应用--在控制.应用可以对一系列用户行为提供建议,或对可能造成严重后果的行为发出警告,但不应该替用户做决定.好的应用会在让用户主导和避免不想要的…
iOS 人机交互指导方针(iOS Human Interface Guidelines) 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的漂亮人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino.否则,出自本博客的文章拒绝转载或再转载,谢谢合作. UI 设计基础 UI Design Basics 为 i…
简介: iOS基于OS X,而OSX本身基于Unix操作系统.在iOS里面,操作系统的完全路径结构是不可见的,因为每个APP的数据都存储自身的沙盒里面.沙盒环境实际上听起来像这样:一个只允许当前APP访问的文件夹目录.每个APP都有自身的沙盒文件夹,并且沙盒文件夹下的子文件夹只有当前APP能够访问. 当一个iOS APP在设备上安装后,系统为其创建的文件夹结构如下: XXX.app 即Main Bundle Documents/ 存储用户创建的内容 Library/ 存储缓存文件.偏好设置等等…
一.UIViewController 做iOS开发的经常会和UIViewController打交道,从类名可知UIViewController属于MVC模型中的C(Controller),说的更具体点它是一个视图控制器,管理着一个视图(view). UIViewController的view是lazy loading的,当你访问其view属性的时候,view会从xib文件载入或者通过代码创建(覆盖loadView方法,自定义其view hierarchy),并返回,如果要判断一个View Con…
iOS 容器控制器 (Container View Controller) 一个控制器包含其他一个或多个控制器,前者为容器控制器 (Container View Controller),后者为子控制器 (Child View Controller).UINavigationController.UITabBarController 是常用的容器控制器.本文介绍自定义容器控制器的方法. 自定义容器控制器 添加子控制器 - (void)displayContentController:(UIView…
有时候,我们的Controler中包含有另一个controler view的view时,可以使用这种方式. https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html 把一个controller view 加入到 controler中 [self addChildViewController:conten…
在iOS中,不同的视图控制器负责不同的功能,采用不同的风格向用户呈现信息.下面对各个视图控制器做个总结: 1,标准视图控制器 - View Controller 这个控制器只是用来呈现内容.通常会用来作为子类,以向屏幕中添加逻辑. 2,导航控制器 - Navigation Controller 这个控制器呈现一个视图控制器的栈,应用程序可以在上面推入更多的视图控制器. 当新视图推入栈,或旧视图弹出栈时,导航控制器会以动画的形式(比如卷动)显示隐藏这些视图. 使用样例:系统“设置”应用程序 3,表…
这个问题是什么意思呢,之前遇到过几次,但程序再次打开时没有问题,也就没有重视,今天又遇到了,无法忍受啊. 控制台报的错误是:"不支持多次推入相同的视图控制器实例". 什么原因造成的呢? 提示了LoginViewController  .在进入这个页面的时候,有多次重复push操作.具体什么原因,在一个控制器里有多次执行push进同一个控制器的操作. 昨天没有时间深究具体在哪发生了这个操作,今天来理理. a)首先,在程序里加上一个全局的异常断点(我这样叫它) 加上一个 b)然后就是运行程…
开发之前需要想到的: 1.列出所有用户可能喜欢的功能. 例子:食谱 (1)创建一个总的食谱菜单 (2)食谱的获取方法  (3)比较价格 (4)当地的食材店 (5)食谱每道菜的注释 (6)能够获取和使用的优惠券  (7)使用图片或者视频的形式演示烹饪的过程 (8)显示不同的烹饪方法,或进行新的探索 (9)发现可以代替的食材 2.确定谁是你的用户群 你需要考虑一个很重要的问题:对于他们来说什么才是最重要的? 例子:食品杂货店  ,  面对顾客你会有提问顾客是否: (1)经常在家烹饪或者趋向于现成的食…
三. 创建文件夹 问题: 你想创建文件夹到磁盘,存储一些文件到里面 解决方案: 使NSFileManager类的实例方法createDirectoryAtPath:withIntermediateDirectories:attributes:error:,代码如下: - (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ NSFil…
前言 在Activity显示View的过程中,有一些重要的角色总让人理不清,比如PhoneWindow.DecorView.ViewRootImpl. 也常常有面试题会问到,他们四者之间的关系?创建的时机?View第一次绘制的时机?等问题. 那么今天,就和大家一起从Activity启动开始 看看 到展示出View整个过程中,到底会经过哪些步骤,这之间各角色的关系又如何. 动画展示 为了方便大家理解,先通过动画的形式给大家展示这几位的关系: 源码解析 从小爱诞生说起 在Activity界面展示之前…
这个问题是什么意思呢,之前遇到过几次,但程序再次打开时没有问题,也就没有重视,今天又遇到了,无法忍受啊. 控制台报的错误是:"不支持多次推入相同的视图控制器实例". 什么原因造成的呢? 提示了LoginViewController  .在进入这个页面的时候,有多次重复push操作.具体什么原因,在一个控制器里有多次执行push进同一个控制器的操作.…
感谢您付出宝贵的才华与时间来开发iOS应用程程序.从职业与报酬的角度而言,这对于成千上万的开发员来说一直都是一项值得投入的事业,我们希望帮助您加入这个成功的组织.我们发布了<App Store审核指南>(App Store Review Guidelines),希望通过它帮您避开开发应用程序过程中的一些问题,并帮你在提交应用时加快审核流程. 我们将应用程序(Apps)视为与书籍或歌曲不同的产品,我们并不存储它们.如果您意欲批评宗教,那就去写本书.如果您想要描述性,那就写本书或写首歌,或者可以创…
Creating Custom Content View Controllers 自定义内容视图控制器 Custom content view controllers are the heart of your app. You use them to present your app’s unique content. All apps need at least one custom content view controller. Complex apps divide the workl…
View Controller Basics   视图控制器基础 Apps running on iOS–based devices have a limited amount of screen space for displaying content and therefore must be creative in how they present information to the user. Apps that have lots of information to display…
Human Interface Design It’s not enough to create an app that works. Users expect Mac apps to be powerful, intuitive, and engaging. Think about the user experience as you design every aspect of your app, from the features you choose to the pointer you…
1.View Controller 基础 1.1 View Controller 分类 ViewController分为container view controller 和content view controller两种类型. 这两种类型只是用途不同,前者作为一个容器容纳其他的view controller,后者用来显示内容,代码上面区别不大.前者包括UINavigationViewController. UITabBarViewController等,后者包括UITabViewContro…
About View Controllers View controllers are a vital link between an app’s data and its visual appearance. Whenever an iOS app displays a user interface, the displayed content is managed by a view controller or a group of view controllers coordinating…
Resizing the View Controller’s Views A view controller owns its own view and manages the view’s contents. In the process, the view controller also manages the view’s subviews. But in most cases, the view’s frame is not set directly by the view contro…
Creating Custom Content View Controllers 创建自定义内容视图控制器 Custom content view controllers are the heart of your app. You use them to present your app’s unique content. All apps need at least one custom content view controller. Complex apps divide the wor…
Using View Controllers in Your App Whether you are working with view controllers provided by iOS, or with custom controllers you’ve created to show your app’s content, you use a similar set of techniques to actually work with the view controllers. 不管…