其实在我们storyboard中还是蛮简单的,在storyboard选择我们要关联的视图控制器,在 Class中选中我们新建的视图控制器类即可。...关联完以后我们就可以在相应的试图控制器类中实现我们的业务逻辑啦,操作如下: ? 3....等,代码如下: //设置title的值 self.navigationItem.title = @"END"; //用给titleView设置图片 //新建imageView...= image; //ImageView加入到navigationItem self.navigationItem.titleView = imageView; 4.在各个视图间切换的时候下面的...在View中展示数据的时候,TableView用的也是蛮多的。 对于TableView如何使用,在后面的博客会进行详细的介绍。
分割控制器UISplitViewController 功能:它也是ipad的一个新特性,在屏幕上可以同时显示两个控制器,左边一个,右边一个;左边的为主控制器,右边的为详细控制器,主控制器可以根据需要显示或隐藏...它对于iPhone虽然可以使用,但是不具备同时显示的特点,在iPhone的样式,就是导航控制器切换的模式。...模式的时候左侧就会消失,你应该在角落里放一个小按钮,使用户可以点击它来让左侧出现 – (BOOL)splitViewController: (UISplitViewController *)...,并设置表格视图的数据源和代理 - (void)viewDidLoad { [super viewDidLoad]; //创建UITableView self.tableView...]; } //在DEtailViewController.m文件中 设置视图背景颜色 - (void)viewDidLoad { [super viewDidLoad]; //设置视图颜色为白色
使用ViewGroup 在Android APP中,所有用户界面元素都由View和ViewGroup对象组成。视图是用户在屏幕上绘制时可以与之交互的对象。...然而,定义布局的最简单和最有效的方法是使用XML文件,这更符合人们的阅读习惯。XML与HTML相似,因为它使用XML元素的名称来表示视图。...例如,具有文本视图和按钮的简单垂直布局 简单效果 要实现第一个布局的1:1效果,只需将两个LinearLayouts的权重分别更改为1和1。...其用法可以概括为:按比例划分水平方向:将涉及的View的android:width属性设置为0dp,然后设置androidweight属性以设置比例;类似地,在垂直方向上,只需将android:height...: 当然,如果我们不将上述设置方法应用于0dp,我们可以直接使用wrap _ Content和match _在parent的情况下,需要解析weight属性。
例如,你可以使用widget的左侧控键到其他widget的右侧控键相隔24dp。 基线约束控键 – 该控键帮助你对齐任意两个widget的文字部分,与widget的大小无关。...选择ImageView并添加@string/dummy到contentDescription属性 在Inspector面板,你可以看到ImageView的其他属性。...你可以点击按钮设置不同的值来改变margins。...在上边截图中,margins设置为16dp 移除constraint – 在Inspector内点击连接widget与container的线,可以移除约束。当然也可以点击已设置约束的控键来移除。...相对于约束来放置widget – 当在一个widget有至少两个相对的连接,比如说顶部和底部,或者左侧和右侧,然后就可以使用滑动条来调节widget在链接中的位置。
主要有三个优点 第一就是强大的属性,通过约束各个控件的关系。有人可能说了Relativelayout不也是设置各个控件的位置吗?...但是ConstraintLayout功能可多了去了,可以设置比例,设置在控件中的位置,可以设置view中心的距离,还可以设置辅助线。...="0.3" 通过该属性可以设置在父布局中显示的位置,按比例显示,比如0.3就代表在3/10的位置。...比如有个需求,是要我的view底部位置在布局的中间,那么就可以在中间画一条辅助线,然后view设置为辅助线之上位置显示即可 <android.support.constraint.Guideline...比如有个需求,有两个textview,不知道哪个textview更长,我需要在更长的textview右边显示一个imageview,就可以把两个textview设置为一个整体。
iOS头部渐变的表格视图设计 今天再来给大家带来一个开发中常用到的视图控制器,在很多应用中,可能都会遇到这样的一个需求:表视图控制器最上方有一个头图控件,当表格视图滑动在顶部时,导航栏透明...,当表格视图逐渐向下滑动时,导航栏渐渐出现,并且在滑动期间,头图会展示相关的渐变动画效果。...以前经常会遇到这样的需求,但从没有整理与封装完善,这次将其封装成完整的控件,无论有无导航,都可以很好的支持,方便以后使用也提供给需要的朋友。 ? ? ...在设计控件之前,我们应该先编写控件的头文件,头文件中将控件需要的属性和方法列举,之后再按定义好的接口一步步的来实现控件的编写设计,这样可以结构清晰,并且不会显得无从下手,控件的头文件设计如下: // /...的头视图不能够在使用tableHeatherView方法 要使用这个属性设置 * */ @property(nonatomic,strong)UIView * tableHeaderView; /*
方法二:通过adb命令开启GPU过渡绘制调试 当然,如果每次都进入系统设置嫌麻烦,可以使用adb命令进行开启和关闭: 开启『调试 GPU 过度绘制』: adb shell setprop debug.hwui.overdraw...使用Canvas的clipRect和clipPath方法限制View的绘制区域 一个Activity对应有一个Canvas,也就是画布,画布的概念就是一个画板,这个画布提供了很多的API,我们可以通过调用画布的...ImageView的background和imageDrawable重叠 Android中,所有的view均可以设置background。...ImageView除了能够设置background之外,还能设置ImageDrawable。...在开发中,很多时候需要显示图片,在图片加载出来之前通常是需要显示一张默认图片的,很多时候会使用ImageView的background属性来设置默认背景图,而imageDrawable来设置需要加载的图片
效果图.gif 前言: 本文将会创建以下几个主类: DWContainerViewController:这包含了左视图,中视图和右视图控制器的视图,并处理动画和滑动等操作。...@objc optional func collapseSidePanels() //折叠侧边的容器 } 在DWCenterViewController.swift的actorsTapped点击方法调用协议方法...var leftViewController: DWSidePanelViewControllervar centerPanelExpandedOffset: CGFloat = 60 //该值是中央视图控制器在屏幕外动画显示后左侧可见的宽度...如果它应该展开,那么它将设置当前状态以指示左侧面板展开,然后为中央面板设置动画,以便打开。否则,它将关闭中央面板,然后移除其视图,并设置当前状态以指示其关闭。...setTranslation:方法设置手势的偏移量 } case .ended: //根据不同的方向移动左或右 if let _ =
选择模板 首先, 在Toolbar上面加入ImageView, 参数之后再说明....代码中使用Glide加载图片....参数 效果 scroll 视图将滚动与滚动事件直接相关. 需要设置此标志才能使任何其他标志生效....snap 在滚动结束时, 如果视图仅部分可见, 则它将被捕捉并滚动到其最近的边缘. enterAlways 当进入(在屏幕上滚动)时, 无论滚动视图是否也在滚动, 视图都将滚动任何向下滚动事件....不写的话左侧有默认的边距.
ViewPager ViewPager的概念 在前面的博文《Android开发笔记(十九)底部标签栏TabBar》中,我们提到可以在一个主页面里通过选项卡方式,切换到不同的子页面。...下面是这两个工具的使用说明: 1、在布局文件中,二者需要作为ViewPager的的下级节点; 2、在布局文件中,二者本身无需另外定义id,代码中一般也不需要取出它们的对象做什么处理; 3、二者除了展示标题之外...,还可自动响应点击事件,点击左侧或右侧的标题,页面会自动切换到左侧或右侧的视图; 4、要设置每页的标题文本,可重写PagerAdapter的getPageTitle,在对应位置返回相应的标题文字;...showNext : 显示下一个视图。 showPrevious : 显示上一个视图。 setInAnimation : 设置视图的移入动画。...2、自动翻页 ViewPager没有可以设置自动翻页的方法,得通过Handler机制来定时调用翻页动作。
ViewPager进阶使用——实现跟随式小圆点效果 步骤: 1.添加小圆点 在布局中的设置如下: <RelativeLayout android:id="@+id/rl_dots" android...但此方法会被多次调用,因此需要在获取到视图的宽度和高度后执行 remove 方法移除该监听事件。...,根据mDistance * (position + positionOffset) 可以实时更新小白点的位置 这部分内容加入了一个新的功能 点击小黑点 可以直接跳转到对应的引导页面,具体逻辑就是在小黑点的点击事件中加入如下代码...我们可以理解为: 0表示当前页面,是当前页面 -1表示左侧的页面,是左侧页面 1表示右侧的页面,是右侧页面 在用户滑动界面的时候,position是动态变化的,下面以左滑为例: 选中页面 position...page.setAlpha(0); } else if (position <= 0) { // [-1,0] // 页面在由中间页滑动到左侧页面 或者 由左侧页面滑动到中间页
问题出在Kotlin要求每个变量都要初始化上面,视图持有者ViewHolder作为一个内部类,目前虽然无法直接对控件对象赋值,但是从代码逻辑可以看出先从布局文件获取控件,然后才会调用各种设置方法。...这意味着,上面的控件对象必定是先获得实例,在它们被使用的时候肯定是非空的,因此完全可以告诉编译器,这些控件对象一定会在使用前赋值,编译器您老就高抬贵手,睁一只眼闭一只眼放行好了。...如此一来,这些控件在声明之时无需赋空值,在使用的时候也不必画蛇添足加上两个感叹号了。...,无需单独构造,也无需手工初始化; 2、像getCount、getItem、getItemId这三个函数,仅仅返回简单运算的数值,可以直接用等号取代大括号; 3、对于视图持有者的内部控件,在变量名称前面添加...翻到前面PlanetListAdapter的实现代码,认真观察发现控件对象的获取其实依赖于布局文件的视图对象view,既然如此,不妨把该视图对象作为ViewHolder的构造参数传过去,使得视图持有者在构造之时便能一块初始化内部控件
而到现在 2020 年末了,依然还是曾经的五大布局吗?...View.GONE 时,还可以使用以下属性设置当前 View 在前者 GONE 情况下的 margin。...使用这块需要注意: 设置宽度/高度百分比时,需要先将对应的宽/高设置为 0dp; 默认值应设置为百分比 app:layout_constraintWidth_default="percent" 或 app...最后我们可以通过 orientation 去设置当前辅助线的显示方式,水平/垂直。...这里从官方博文中可以得知 Android 绘制视图过程包括如下三个阶段: 测量(Measure) 系统从视图树自顶向下遍历,以确定每个 ViewGroup 和 View 元素大小。
-- 添加子视图 --> 2.在FrameLayout中添加子视图: 可以在FrameLayout中添加多个子视图,后添加的子视图会覆盖先前添加的子视图。...可以通过设置子视图的属性来调整其位置和大小。 <FrameLayout ......android:layout_gravity="center" /> 3.调整子视图的位置和大小: 可以使用android:layout_gravity属性来指定子视图在FrameLayout...还可以使用其他布局参数和属性来调整子视图的位置和大小。...4.在代码中操作FrameLayout和子视图: 在代码中可以通过findViewById()方法获取FrameLayout和子视图的引用,并进行相应的操作,例如设置可见性、更改位置、监听点击事件等 FrameLayout
标题栏ActionBar ActionBar是在Android3.0之后引入的,所以Android2.x之前的版本不能直接使用ActionBar。...: 是否在左侧返回区域显示返回箭头,默认不显示 setDisplayShowTitleEnabled : 是否在左侧返回区域显示左侧标题,默认显示APP名称 setTitle : 设置左侧标题的文本...定制视图CustomView 定制视图用于在ActionBar上显示一些个性化内容,比如说,ActionBar自带的标题文字位于左侧区域,而且也不能调整文字大小、颜色等等,如果我们想把标题文本挪到中间...,还要设置文字样式的话,就得使用定制视图了。...使用定制视图需要在ActionBar中将其设置为可用(setDisplayShowCustomEnabled),同时要通过setDisplayOptions来设置DISPLAY_SHOW_CUSTOM。
前言 在2016年的Google I/O大会上 , Google 发布了Android Studio 2.2预览版,同时也发布了Android 新的布局方案 ConstraintLayout , 但是最近的一年也没有大规模的使用...layout_constraintLeft_toTopOf // 将所需视图的左侧与另一个视图的顶部对齐。...layout_constraintLeft_toBottomOf // 将所需视图的左侧与另一个视图的底部对齐。...constraintDimensionRatio 这个属性就是把一个View的尺寸设为特定的宽高比,比如设置一张图片的宽高比为 1:1,4:3, 16:9 等。...可以看到很明显,Button 在水平方向向右偏移比例为 30% , 在垂直方向向下偏移比例为 70% 。 基线约束控键 该控键帮助你对齐任意两个widget的文字部分,与widget的大小无关。
案例1 设置某个View距离父View上下左右间距全部为20。 ? 案例2 某个View距离父View的左侧20,上20,宽高均为100。 ?...案例3 某个View距离在父View的左侧20 案例2中白色View 上20 宽高和Demo2中的宽高一样。 ? 然后,点击某个约束。 ? 对其处理 ?...案例2 在水平方向上放4张图片,图片等分。 1,首先在页面上拖拽1个imageView,将它的宽高都设置成50。 ?...2,然后再添加三个imageView,将界面上的四个ImageView设置等宽等高。 ?...Baseline Relative:如果设置子视图间距的大小为基线到下一个视图的头部
Carousel视图,显示用户可以浏览的元素列表。...这种无限轮播的错觉的方式,实际上是将实际视图移回它们的位置,然后使用新的匹配内容将其重新初始化。...Carousel Helper还需要设置几个属性: app:carousel_firstView:表示轮播的第一个元素的视图,在我们的示例中为C,即首先展示默认居中的视图 app:carousel_previousState...可以使用另一种模式,其中Carousel Helper将这些视图标记为View.GONE。...可以使用以下属性设置此模式: app:carousel_emptyViewsBehavior="gone" 向大家推荐下我的网站 https://xuyisheng.top/ 点击原文一键直达 专注
前一篇文章中有用到 PopupWindow 来实现弹窗的功能。简单介绍以下吧。 官方文档是这样解释的:这就是一个弹出窗口,可以用来显示一个任意视图。出现的弹出窗口是一个浮动容器的当前活动。...然后在主界面代码中实例 PopupWindow ,指定弹出的界面,在按钮点击事件中显示或隐藏弹窗就可以了,代码如下: package com.yanis.demo; import android.app.Activity...,则不需要此方式隐藏 pop.dismiss(); } else { // 弹出窗口显示内容视图,默认以锚定视图的左下角为起点,这里为点击按钮 pop.showAsDropDown...后台可以设置为null。...(); } else { // 弹出窗口显示内容视图,默认以锚定视图的左下角为起点,这里为点击按钮 pop.showAtLocation(hideView, Gravity.BOTTOM, 0, 0);
前面学了那么多关于函数、语法、类这些知识,确实是比较枯燥,但却是有必要的,因为这些都是在进行业务实现需要的,举个例子,常规功能,登录。你有想过需要哪些业务逻辑处理吗?你不会以为输入账号密码就没事了吗?...图像视图ImageView在代码中调用的方法说明如下: setImageDrawable : 设置图形的Drawable对象。 setImageResource : 设置图形的资源ID。...setScaleType : 设置图形的拉伸类型,在Kotlin中可直接给属性scaleType赋值,如下表所示: scaleType类的拉伸类型 说明 ScaleType.FIT_XY 拉伸图片使之正好填满视图...当然这些效果你也可以直接在布局文件中写好 ? 这里设置也是一样的效果。...1.7 文本编辑框EditText 文件编辑框通俗的说就是输入框,在实际的开发中应用广泛,基本每一个APP都会有,常见的在一些登录、注册、个人信息编辑的地方使用,EditText是可以限制用户的输入方式的
领取专属 10元无门槛券
手把手带您无忧上云