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

iOS 9人机界面指南(四):UI元素(上) - 腾讯ISUX

可以在工具栏里放置分段控件以方便用户快速切换当前内容的不同视图或模式。在工具栏中提供应用全局的任务或者模式分段控件是不恰当的,因为工具栏中的所有操作都应当是针对当前屏幕和视图的。...活动视图控制器通常用作让用户把他们选中的内容复制到他们的社交媒体账户上。 不要创建一个自定义按钮来触发活动视图控制器。用户更习惯点击动作按钮后使用系统提供的服务。...你应该学会如何更好地利用用户这一既定习惯,而不是强迫他们以一种全新的方式来完成同样的事情。 确保控制器中的操作适用于当前场景。你可以适当地在活动视图控制器中增减系统操作,或增加自定义操作。...没有明确目的而贸然改变集合视图的布局会让用户对应用留下难用、不符合预期等负面的印象。更有甚者,如果用户此时关注的项在变化中消失了,用户会觉得这个应用超出了他们的控制能力。...页面视图控制器让用户从一页移动到前一页或者后一页,而并不支持用户在并不相邻的页面间快速切换。

10.1K51

iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

活动指示器: 当任务进行和加载时旋转,任务完成后自动消失 不支持用户交互行为 在工具栏或主视图中使用活动指示器来告知用户任务或加载正在进行中,但并不提示该过程何时会结束。 不要使用静止的活动指示器。...页面控件不显示视图是如何相互关联的,而且不表明哪个视图对应于每个点,因此它不能帮助用户导航到特定的视图。 避免显示太多点。超过10个点就很难让用户一目了然,而超过20个视图在序列中访问起来非常耗时。...API提示: 想要了解更多如何在代码中定义分段控件,可以参考 Segmented Controls 分段控件: 由两个或以上的分段组成,每一个分段的宽度相同,与分段的数量成比例(分段数量越多,则宽度越小...好的按钮文案一般只有1到2个单词,描述用户点击按钮后的结果。...通常也会包含一个完成任务的按钮(点击后即可完成任务,当前模态视图也会消失),和一个取消按钮(点击后即放弃当前任务,同时当前模态视图消失) 当需要用户完成与你的app中的基础功能相关的、独立的任务的时候

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

    Cocoa编程中视图控制器与视图类详解

    initWithRootViewController:[[MyViewController alloc] init]];   [window addSubview:nav.view];   UINavigationController如何推入和弹出视图控制器...NavigationController的堆栈中 的话(即是被推送过来的),则视图控制器的这个属性就指向那个NavigationController,否则为nil。...在发送presentModalViewController: animated:消息后,一个新的视图控制器(其实是个ModalViewController)会滑动到屏幕并掌握控制权,直到使用dismissModalViewControllerAnimated...控制器加载视图过程 当调用视图控制器的view属性时,视图控制器会先调用loadView方法加载视图,因此,可以在loadView方法中创建所有的视图,这是比较好的编程惯例。...接着会调用视图的viewLoad->viewWillAppear->viewDidAppear. 6. 控制器视图消失过程    消失过程比较简单,不作说明。 7.

    5.1K50

    ViewController及View的生命周期1. 起因2. Controller的生命周期3. View的生命周期4. 内存警告

    Controller的生命周期 系统提供了控制器从显示到消失的四个方法。 千万不要看到方法名中间出现了view就以为这是视图的方法。这些都是控制器的生命周期。...意思是说viewDidLoad在视图被加载后调用。如果使用了布局文件,那么会在布局文件加载后被调用。...下面做一个小测试,打印在不同方法执行的过程中,界面的长宽属性如何,结果如下: //viewDidLoad w:320.000000 h:568.000000 //viewWillAppear w:...,与上面被其它视图控制器显示对应,如信息录入完成,返回之前的视图控制器)。...ViewDidLoad:view加载完毕 当控制器的loadView方法执行完毕,view被创建成功后,就会执行viewDidLoad方法。

    1.5K30

    Unity Demo教程系列——Unity塔防游戏(六)动画(Lively Enemies)

    视图可以自我更新,但是我们可以告诉它们应该如何进行更新。...我们需要链接到游戏时间的动画,该动画是通过在创建视图后调用DirectorUpdateMode.GameTime的SetTimeUpdateMode来配置的。 ?...通过在Play方法中添加速度参数来控制。通过GetOutput在索引零处获取视图的输出,通过GetSourcePlayable获取其可播放的源,并以提供的速度对其调用SetSpeed。 ?...7.1 重建 Playable Graph EnemyAnimator是可序列化的,但是在热重载期间本机数据丢失后,其视图将无法工作。我们可以通过在视图上调用IsValid来检测到这一点。...如何让视图与敌人复用一起生效? 在再次Play视图之前,你需要将所有剪辑的时间设置为零并将其暂停。最后一个活动剪辑的权重也需要变为零。

    2.3K20

    iOS开发学习路线

    代码封装 当使用较多第三方库后,要求开发人员学习其开发特点,以及其封装手法,运用在自己的项目上,封装自己的代码.灵活运用. 完整项目....菊花控件 UIAlertView(iOS8废除) 警告框 UIActionSheet(iOS8废除) 操作表单 UIAlertController(iOS8出现) 警告视图控制器 UIScrollView...滚动视图 UIPageControl 页面控制器 UISearchBar 搜索框 UITableView 表视图 UICollectionView集合视图 UIWebView网页浏览器 UISwitch...alloc init 创建View ViewDidLoad ViewWillAppear ViewDidAppear ViewWillDisappear 视图将要消失 (做一些视图将要消失时的UI...的处理) ViewDidDisappear 视图已经消失 (做一些视图消失之后数据的处理) viewDidDisappear销毁定时器 dealloc didReceiveMemoryWarning

    1.9K60

    金融风控数据管理——海量金融数据离线监控方法

    衍生指标是指对监控指标进行二次运算后得到的监控指标,衍生指标的计算不依赖源表,只依赖监控指标及其历史记录。...部署视图 在实际部署上,统一监控计算与检查工具中TaskMaker(任务生成)、Calculator(计算)、Checker(检查)等模块实际上对应一个Spark节点,各个模块之间依赖关系如下图所示。...最终,拉取分段计数,在本地完成PSI的计算: ? 综上,执行优化算法小结如下: 算法: 执行优化算法。 输入:当前全部未执行计算任务对应计算过程。 流程:  - Step1....; 根据分段segs遍历-1周期获取分段计数,计算psi@-1; 根据分段segs遍历-6周期获取分段计数,计算psi@-6。...如何在技术领域产生自己的影响力 ? 让我知道你在看 ?

    2.7K10

    2024程序员容器化上云之旅-第3集-Windows11版:存款是怎么被恶意转走的?

    在控制器或者具体的请求处理方法上使用@CrossOrigin注解,也可以实现CORS配置。这种方式更加灵活,适用于只想对特定的控制器或请求方法开放跨域访问权限。」 「3 通过配置文件。...在用命令npm run dev启动前端app时,该如何指定启动后的端口号是8080,而不是默认的5173? 马意浓在网上查到了命令。...✅他在笔记中写道:「在有CORS安全机制的现实世界,因为黑客的InvestSmart网站中的投资文章的源,肯定不同于网上银行的源,并且网上银行的后端app绝对不会设置成允许黑客网站的源来访问,」 「所以即使客户在使用完网上银行后没有安全退出...他回到docker desktop界面,看到这两个容器果然消失了。...云集群中运行shopping list web app时如何配置前端app在k8s云集群中的对外域名和端口号以解决CORS问题 8.2 在全绽园的帮助下为前端app配置ingress后解决了这个问题 8.3

    37022

    【百度】一面总结(含答案)

    比如检查新版本、注册推送通知等逻辑。 避免复杂/多余的计算。...避免在用户看到的第一个界面(首页控制器或注册登录页面)的 viewDidLoad 和 viewWillAppear 做太多事情,这 2 个方法执行完,第一个页面才能显示,部分可以延迟创建的视图应做延迟创建.../懒加载处理 首页控制器或注册登录页面用纯代码方式来构建 1.4 link map数据结构 Link Map File 中文直译为链接映射文件,它是在 Xcode 生成可执行文件的同时生成的链接信息文件...VC生命周期 +load: 程序启动后,在系统的 main 函数调用之前,系统就会加载所有的 load 方法,提前进行一些资源包的配置或者 hook,(可以打断点看看结果,本人亲测过) +initialize...: 视图即将消失会调用 -viewWillLayoutSubviews: 视图加载完毕后即将要布局 -viewDidLayoutSubviews: 视图加载完毕后布局也完成了 -didReceiveMemoryWarning

    52630

    Uber 大规模运行 Apache Pinot实践

    在本文中,我们介绍了这一平台的细节,以及它如何融入 Uber 的生态系统。...存储 下面是 Apache Pinot 核心存储引擎的放大视图: 这是 Apache Pinot 以对称配置部署在两个不同地理区域的视图。...Piper 推送 类似地,我们添加了从“Hive to Avro Converter” Spark 作业的输出派生 Pinot 模式的功能,并在推送数据之前在模拟 Pinot 集群中自动创建表和模式。...如果 Pinot 服务器已经落后于其副本或在节点故障后正在重建的情况下,它允许服务器从中央存储下载段。最初的设计通过在控制器上安装一个网络文件系统(NFS)来解决这一容量问题。...因此,在集群扩展的情况下,可以在新添加的服务器中创建最近的段。为环节这一问题,我们在集群扩展后运行表以重新平衡。

    92410

    OpenDaylight与Mininet应用实战之三层转发机制四

    生成拓扑后,将OpenDaylight连接至Mininet作为交换机的控制器控制主机通信。...同时ODL控制器知道了h1的存在,通过路径计算,得到每一台交换机去往10.0.0.1的路径,并通过OF Flow Modify将流表推送到每一台交换机上。...SW6不知如何处理,将ARP封装在OF协议中发送到ODL控制器。ODL控制器接到这个ARP响应,同时得到h4的位置是处于SW6的某个端口。...(7)主机h4收到ARP后可构造ICMP PING Response,其中源和目的MAC分别为h4和网关20.0.0.254的MAC,源和目的IP分别为h4和h1的IP。...通过控制器提供的界面,可以看到网络的可视化视图(http://192.168.5.203:8080),与我们之前给出的网络拓扑一致,如下图7所示。 ?

    1.8K60

    已中招!Android 基础面试常常吊死在这几个问题上……

    10、面试官:当旋转屏幕时,Activity如何响应? 11、面试官:你是如何做到旋转屏幕时防止数据重新加载和重置的? 12、面试官:说一下AsyncTasks和线程他们的区别!...如何避免这些问题? 14、面试官:Serializable和Parcelable之间有什么区别? 15、面试官:什么是(ANR)错误,如何防止它在应用程序中发生?...第三波 11、面试官:你是如何做到旋转屏幕时防止数据重新加载和重置的?...创建视图需要花费时间,因此您的滚动很可能不会很流畅。这就是为什么 RecyclerView 会利用以下事实:滚动时,新行出现在屏幕上,而旧行消失在屏幕上。...由于视图和控制器紧密耦合,因此模块化和灵活性是一个问题。如果我们更改视图,则控制器逻辑也应更改。维护也是一个问题。

    2K20

    UI篇-VC的生命周期以及UIView的layoutSubviews和drawRect方法

    view完全显示 viewWillDisappear:控制器的view即将消失的时候 viewDidDisappear:控制器的view完全消失的时候 多个viewControllers跳转 当我们点击...一个很常见的问题,我们需要在VC被销毁的时候处理一些事情,可是 viewWillDisappear 不管是入栈新的视图还是出栈当前视图都会被调用,无法判断,结合我之前说的原理,我们可以利用下面这个方法判断当前...但是在VC中,当前UIView的是在 viewDidLoad 执行后才初始化好的,所以我们会见到这样一个Bug,在VC初始化语句后面调用 一个 VC的绘制UI的方法,你会发现根本没有效果,这就是因为,VC...drawRect 掉用是在Controller->loadView, Controller->viewDidLoad 两方法之后掉用的.所以不用担心在 控制器中,这些View的drawRect就开始画了....这样可以在控制器中设置一些值给View(如果这些View draw的时候需要用到某些变量 值). 2、该方法在调用sizeToFit后被调用,所以可以先调用sizeToFit计算出size。

    1.9K30

    iOS 自定义分段控制器

    最近做项目时遇到一些问题,就是项目里原有分段控制器的适用范围有些局限,虽然网上也有很多分段控制器的demo,但自己写的,可控性和项目适用性自己能很明白,所以我专门封装这样一个分段控制器,解决不同场景下的功能需求...首先,介绍一下分段控制器,相信大家也都见过这样的场景 ?...image.png 好,看到上图大家应该心里或多或少知道接下来要干的事了,我们一步一步分析如何封装一个好的分段控制器: 1.满足可配置多个子控制器 2.可配置菜单栏各个属性,如字体大小颜色等 3....,一是标题按钮的创建,二是设置指示器的位置,三是配置多个内容的控制器视图,仔细看代码,逻辑其实也很简单明了 4.实现按钮点击事件和视图滑动事件 #pragma mark - 事件 -(void)btnClick...btn.frame = CGRectMake(menuBtnWidth*i, 0, menuBtnWidth, self.btnViewHeight); } } } 到此,自定义分段控制器就已经封装完了

    1.3K31

    让人耳目一新的 Jetpack MVVM 精讲!

    Lifecycle 通过 模板方法模式 和 观察者模式,将生命周期管理的复杂操作,全部在作为 LifecycleOwner 的基类中(例如视图控制器的基类)封装好,默默地在背后为开发者运筹帷幄, 开发者因而得以在视图控制器...及 事件源追溯复杂度 为 n² 的局面。...唯一可信源是指 生命周期独立于 视图控制器的 数据组件,通常是 单例 或共享 ViewModel) 这使得任何一次状态推送,都可预期、都能方便地追溯来源,而不至于在 事件追溯复杂度为 n² 的迷宫中白费时间...为了在视图控制器发生重建后,能够 自动灌倒 所观察的 LiveData 的最后一次数据,LiveData 被设计为粘性事件。...换言之,在使用 DataBinding 后,唯一的改变是,你无需手工调用视图来 set 新状态,你只需 set 数据本身。

    99320

    软件定义数据中心(SDDC)的网络安全

    本文将会介绍SDDC体系架构中的网络安全性,将介绍微分段、可视化、可扩展策略和自动化的概念,以佐证所有基础设施虚拟化时安全性的演变。 ? 首先来看企业IT安全性的变化,如何适应现代软件定义的架构。...通过软件定义网络(SDN)在SDDC中发挥关键作用,一个主要的优点是统一控制器,用于管理数据中心网络的方方面面,当然也包括了安全功能。...管理员可以专注于管理一组安全策略,可以将其推送到数据中心的所有部分,而不是配置各个网络设备。 这也导致了SDDC网络安全的特定领域:微分段。...微分段执行各种组件和应用程序的逻辑分离,同时创建和分组策略控制数据中心内的网络安全,SDN控制器根据网络设备的策略自动推出特定规则。...SDN技术实现的单一窗格优势也扩展到网络可视化领域,由于SDN控制器的智能化,将策略推动到网络设备,因此在配置监控和日志记录功能时可以减轻负担。事实上,SDDC架构可以打破传统的安全监控方式。

    1.7K150

    UIScrollView

    24.一个布尔值 知识用户是否已经开始滚动内容 @property(nonatomic,readonly,getter=isDragging) BOOL dragging; //25.返回的内容是否在滚动视图后...@property(nonatomic) BOOL delaysContentTouches; //27.如果这个值设置为YES,那么当你在UIScrollView上面放置任何子视图的时候,当你在子视图上移动的时候...withEvent:(UIEvent *)event inContentView:(UIView *)view; //29.它开始发送跟踪邮件的内容视图后动视图调用此方法。...scrollView的行为) 设置scrollView的delegate(代理)为控制器对象 scrollView.delegate = 控制器; 控制器要遵守UIScrollViewDelegate协议...Delegate,比如UIScrollViewDelegate、UITextFieldDelegate 代理方法:方法名一般是控件名开头,比如UIScrollView的代理方法一般以scrollView开头 如何监听控件的行为

    1.8K60

    iOS对UIViewController生命周期和属性方法的解析

    4:viewDidLoad方法是我们最常用的方法的,类中成员对象和变量的初始化我们都会放在这个方法中,在类创建后,无论视图的展现或消失,这个方法也是只会在将要布局时调用一次。...5:viewWillAppear:视图将要展现时会调用。 6:viewWillLayoutSubviews:在viewWillAppear后调用,将要对子视图进行布局。...7:viewDidLayoutSubviews:已经布局完成子视图。 8:viewDidAppare:视图完成显示时调用。 9:viewWillDisappear:视图将要消失时调用。...loadView是一种错误的方法,apple文档声明对于loadView方法,我们从来都不要手动直接调用,那么我们如何实现创建后对成员对象进行传值设置呢,iOS9中增加了这样一个方法: - (void)...举个例子,我们需要在第二个界面消失后,改变第一个界面的颜色,在第二个controller中只需要下面的代码即可实现 :     self.presentingViewController.view.backgroundColor

    3K20
    领券