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

iOS UI控件了解一下

创建view的步骤如下: ①开辟空间并初始化视图(初始化时,给出视图位置大小) ②对视图做一些设置(比如:背景颜色) ③将视图添加到window上进行显示 ④释放视图对象 视图创建代码: UIView...,提供了许多属性方法:显示效果控制(frame、alpha等)、视图添加移除(addSubview: 等)、视图层次调整(bringSubviewToFront:等)等。...origin也是一个结构体,包含2部分内容:xy(ios坐标系以左上角为坐标原点(0,0),原点向右侧为X轴正方向,原点下侧为Y轴正方向);size同样是一个结构体,包含2部分内容:widthheight...UIView的操作方法 1)添加视图 UIView的addSubview:方法可以添加视图,对于同一个视图的所有子视图来讲,后添加的子视图会把已加的子视图盖在下面。...UIView提供了其他添加视图的方法(详见下表): ? 2)管理视图层次 UIView除了提供添加视图的方法,还提供了管理视图层次的方法(详见下表): ?

2.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

Masonry

Masonry有自己的布局DSL,它提供了一种链式调用的方式来描述NSLayoutConstraints,从而使布局代码更简洁,更易读。 Masonry支持iOSMac OS X....为什么需要使用Masonry 首先看下直接用NSLayoutConstraints方式布局视图需要什么操作: 例如:我们需要布局一个视图view1,使他距离父视图上下左右都为10,NSLayoutConstraints...NSLayoutAttribute的封装 MASViewConstraint是对NSLayoutConstraint的封装,最后将布局约束添加到一个数组当中 block回调执行完毕之后,最后对布局进行安装...寻找两个视图的公共父视图对于约束的添加来说是非常重要的,因为相对的约束是添加到其公共父视图上的。...比如举个列子 viewA.left = viewB.right + 10, 因为是viewA与viewB的相对约束,那么约束是添加在viewA与viewB的公共父视图上的,如果viewB是viewA的父视图

1K10

码一个高颜值统计图

一:介绍 在项目中遇到数据展示需求时,往往会通过,列表的形式展示出数据或者表格的形式展示。但是并不能直观的观察数据的变化,如果通过图表的形式来展示,就可以更快捷的获取到数据变化情况。...图表展示的方式有很多,那么如何码出一个高颜值原生折线图呢?下面给大家分享统计图包括折线统计图、柱状图、环形图。 源码Demo获取方法 关注 【网罗开发】微信公众号,回复【96】便可领取。...添加微信:FBY-fan 拉你进群交流 下面来介绍一下如何使用。 二:项目展示 运行后的展示截图如下: ?...柱状图设置属性添加内容 // 柱状统计图 - (void)barChartView { UILabel *titleLab = [[UILabel alloc] initWithFrame:CGRectMake...环形图设置属性添加内容 // 环形统计图 - (void)ringChartView { UILabel *titleLab = [[UILabel alloc] initWithFrame:CGRectMake

1.8K10

iOS | 动态获取字符串宽高并添加约束

在 iOS 实际编码过程中,我们可能会需要通过代码动态的某个 View 视图添加 UILabel, 此时,我们必须手动的为这些 UILabel 对象添加约束条件,否则,这些 UILabel 将会因为没有约束条件而无法显示...只有获取到 UILabel 中填充的字符串所占据的宽高信息信息之后,才能为其添加具体的约束,所以—— 通过代码获取字符串所占视图宽度: /* * 获取字符串边框 */ func getStrBoundRect...with: constrainedSize, options: option, attributes:attr , context: nil) return rect } 当我们获取到字符串所占视图区域...Rect 之后,就可以动态添加约束了,示例如下: /* * 添加约束 */ func addLabelConstraint(targetView:UIView,preRightBound:CGFloat...self.spendCouponView.bottomAnchor, constant: 0).isActive=true return rightBound } 上述两个函数的调用示例如下: //添加满减券子视图

71310

【IOS开发进阶系列】动画专题

每一个UIview都有一个CALayer实例的图层属性,也就是所谓的backing layer,视图的职责就是创建并管理这个图层,确保当子视图在层级关系中添加或者被移除的时候,他们关联的图层也同样对应在层级关系树当中有相同的操作...但是这个方法不能让你编码的方式动态地生成蒙板,也不能让子图层或子视图裁剪成同样的形状。         CALayer有一个属性叫做mask可以解决这个问题。...因为背对相机而隐藏的视图仍然会响应点击事件(这通过设置hidden属性或者设置alpha为0而隐藏的视图不同,那两种方式将不会响应事件)。...1.12.2.1 富文本         iOS 6中,Apple给UILabel其他UIKit文本视图添加了直接的属性字符串的支持,应该说这是一个很方便的特性。...这些属性会相乘的方式作用在一起,这样你就可以用一个值来加速或者扩大整个例子系统。

39310

iOS Core Animation:Advanced Techniques

如果我们想依照此图形来剪裁视图内容,我们可以把CAShapeLayer作为视图的宿主图层,而不是添加一个子视图(图层蒙板的详细解释见第四章『视觉效果』)。...这是因为并没有Retina的方式渲染,第二章提到了这个contentScale属性,用来决定图层内容应该以怎样的分辨率来渲染。contentsScale并不关心屏幕的拉伸因素而总是默认为1.0。...就像我们在第一章『图层树』讨论的一样,每一个UIView都是寄宿在一个CALayer的示例上。这个图层是由视图自动创建和管理的,那我们可以用别的图层类型替代它么?一旦被创建,我们就无法代替这个图层了。...在这里,我们给UIView类型的指针添加的动画,所以可以简单地判断动画到底属于哪个视图,然后在委托方法中用这个信息正确地更新钟的指针(见下面的代码)。...UIView的动画缓冲 UIKit的动画也同样支持这些缓冲方法的使用,尽管语法常量有些不同,为了改变UIView动画的缓冲选项,给options参数添加如下常量之一: UIViewAnimationOptionCurveEaseInOut

1.8K30

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

) Frameworks 目录 Frameworks 目录简介 :  -- 包含文件 : 包含项目所依赖的框架 或者 库, 还有 声音 图像 等资源文件也可以放在该文件中; -- 自动链接 : 框架库一旦被添加到该目录后...UIView 属性 UIView 属性 :  (1) Mode 属性 Mode 属性 : -- 主要作用 : 用于控制 UI 控件内图片的对齐方式, 是否缩放适配控件; -- Scale To Fit...UILabel 属性 UILabel 属性 :  (1) Text 属性 Text 属性 :  -- 属性值 : 支持 Plain Attribute 属性, 一般设置为 Plain; -- 文本...7) Line Break 属性 Line Break 属性 :  -- 作用 : 该属性对 UILabel 内的文本进行截断, UILabel 中的字符串比较多, UILabel 无法容纳这些字符串...替代; (8) AutoShrink 属性 AutoShrink 属性 :  -- 作用 : UILabel 中字符串较多 以至于 UILabel 无法容纳字符串时, AutoShrink 属性控制文本自动收缩

4.9K30

iOS中动态更新补丁策略JSPatch运用基础一

= [UIColor redColor];     return view; } 在工程中添加一个js文件,编写如下:     require('UIView, UIColor, UILabel')...二、使用JavaScript代码Objective-C中修改或添加方法         JSPatch引擎中支持3中方式进行JavaScript代码的调用,分别是使用JavaScript字符串进行代码运行...这个类,需要在使用前进行如下引用: require('UIView') 同样也可以一次对多个Objective-C类进行引用: require('UIView, UIColor, UILabel') 还有一种更加简便的写法...重写或者添加类的方法: 在JavaScript中使用defineClass来定义修改类中的方法,其编写格式如下所示: /* classDeclaration:要添加或者重写方法的类名 字符串  如果此类不存在...,Objective-C中遵守协议的方式一致,如下: defineClass("ViewController2: UIViewController ", {

86620

声明式 UIKit 在有赞美业的实践

其方便的布局方式,通过布局来接管视图的大小位置,使得各个视图节点得到了很好的解耦,大大地提高了 UI 代码的可移植性。...由于提供的是约束,强调视图“之间”的相互关系,意味着关系一旦定下来,修改约束(包括添加移除视图),必定会影响到另一个视图的引用,从而导致代码移植性不高。...当位置大小被布局接管后,视图之间的依赖没有了,转化为添加视图的顺序各自的属性,会发现声明式的API在布局系统中能非常好地契合。...UIView |-- UILabel |-- UIButton 同时 View 之间没有相互联系,移植性高。 为什么不通过描述对象的方式来声明而采用直接使用 View 进行声明呢?...2.2 布局设计 由于我们的结构 API 设计是基于 UIView方式,布局在设计中,其实也是一个 View,一个具备布局能力的视图容器。布局能力我们是可以进行抽象的,即布局的算法。

1.4K30

iOS头部渐变的表格视图设计 原

iOS头部渐变的表格视图设计         今天再来给大家带来一个开发中常用到的视图控制器,在很多应用中,可能都会遇到这样的一个需求:表视图控制器最上方有一个头图控件,当表格视图滑动在顶部时,导航栏透明...,当表格视图逐渐向下滑动时,导航栏渐渐出现,并且在滑动期间,头图会展示相关的渐变动画效果。...在设计控件之前,我们应该先编写控件的头文件,头文件中将控件需要的属性方法列举,之后再按定义好的接口一步步的来实现控件的编写设计,这样可以结构清晰,并且不会显得无从下手,控件的头文件设计如下: // /...All rights reserved. /*  *  这个视图控制器创建出带缩放头图效果的视图控制器  *  tip:  *      1.这个视图控制器如果是被导航push出来的 则内部会使用假导航进行渐隐模拟...    UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 30)

1.1K20

Pop–实现任意iOS对象的任意属性的动态变化

简介 Pop 是一个可扩展的动画引擎,可用于实现任意iOS对象的任意属性的动态变化,支持一般动画,弹性动画渐变动画三种类型.....也就是说: 任何NSObject及其子类都可以通过Pop添加动画效果....渐变动画,可以让对象缓慢地停止变化.下面的例子,我们使图层的横坐标从当前值1000像素每秒的速度渐变: POPDecayAnimation *anim = [POPDecayAnimation animationWithPropertyNamed...animation]; anim.property = [POPAnimatableProperty propertyWithName:kPOPLayerBounds]; 这个框架爱预先实现了了许多图层视图共用的动画属性...(NSLayoutConstraint)通用动画属性. */ extern NSString * const kPOPLayoutConstraintConstant; /** 视图(UIView

1.2K70

MyLayout&TangramKit 的重大升级!

AutoLayout的尺寸自适应 AutoLayout中有两种类型的尺寸自适应:一类是以UILabelUITextView为代表视图的尺寸自适应,这类视图中的宽度高度有时候需要根据自身内容来确定自己的宽度高度...很明显UIView类的返回值是默认值,而UILabelUITextView这些类则重载了这个方法并返回了根据自身内容计算出来的尺寸。...要实现UIScrollView滚动时,只需要在一个滚动视图添加一个布局视图,然后将所有其他子视图添加到这个布局视图中去,这个上面的AutoLayout的处理方式是一样的,最后将布局视图的尺寸自适应属性设置为...这里只介绍将MyLayout&TangramKit的布局视图加入到AutoLayout布局体系中去的一些方法。 1.将布局视图添加到非布局父视图中 因为布局视图也是一个视图,都是从UIView派生。...,然后将布局视图添加到其他视图中去,不需要再为布局视图设置宽度高度约束了,也不再限制只能将布局视图添加到contentView中了,也不再需要重载特定的方法了,就相当于将一个布局视图当做UILabel

2K20

深入详解iOS适配技术

所以,storyboard代码是相同的,无论什么视图,凡是可以通过storyboard进行设置的属性,都有与之对应的属性代码,我们也可以使用代码的方式实现。...不难发现,这样位移的方式指定autoresizingMask枚举值,也契合了storyboard中可以给子控件设置多个方向的约束的情景。如下图: ?...Snip20160515_3.png 4.如果view的约束只自己有关系,那么添加到自己身上。比如宽高约束。 UILabel使用AutoLayout UILabel默认内容的显示方式是垂直居中的。...原因在于,UILabel是根据内容自动调整宽度高度,如果没有内容,那么宽度高度就是0,导致UILabel无法显示。...父控件随子控件变化而变化 如果希望父控件随子控件(UILabel/UIView)高度的变化而变化,就不要给父控件添加高度约束,只需要子控父控件在垂直方向上添加约束,这样子控件高度改变,父控件高度也会随之改变

8.4K70

iOS 仿支付宝银行卡界面(支持SwiftOC)

在钱包视图中实现添加卡片方法 在钱包视图中实现卡片展示隐藏回调方法 创建卡片视图ColoredCardView继承于CardView 在CardView中实现点击手势展示隐藏卡片 导入项目使用介绍...初始化WalletView并加载钱包头部视图walletHeader 在需要加载钱包的地方初始化WalletView,并自定义头部视图walletHeader卡片视图,Demo 中ViewController...在钱包视图中实现添加卡片方法 在展示页面中我们可以看到,在页面的左上角有一个添加按钮,这个按钮的UI布局在头部视图中实现,具体的功能是,添加一个卡片,具体的实现方法如下: open func insert...在钱包视图中实现卡片展示隐藏回调方法 在钱包视图中实现卡片展示隐藏回调方法,在展示状态下,需要隐藏掉添加卡片按钮,禁止继续添加卡片,并且显示卡片详细设置内容删除按钮。...// 卡片视图 @objc var bankCardView: UIView!

1.4K20

视觉效果 -- iOS Core Animation 系列三

如果想要截取这个视图的图片视图,需要设置masksToBounds为YES。 图层边框 border CALayer另外两个非常有用的属性borderWidthborderColor。...shadowRadius属性控制着阴影的模糊度,当值为0的时候,阴影视图一样有一个明显的边界,值越大,边界线看起来就会越模糊。...导致一直显示不出来阴影,差的原因是无法共存,到现在才发现是maskToBounds导致的。 maskToBounds把阴影也裁掉的结果肯定不是我们想要的。...self.leftView.layer.shadowOpacity = 0.8f; self.leftView.layer.shadowRadius = 5.f; // 给 shadowView 添加...如果想了解的话请点击此处 组透明 alpha UIView有一个alpha属性来决定视图的透明度,对应的CALayer有一个opacity属性。这两个属性都会影响子层级的显示透明度。 下面做个示例。

1.1K30

iOS 优化界面流畅的技巧

视图层次调整时,UIView、CALayer 之间会出现很多方法调用与通知,所以在优化性能时,应该尽量避免调整视图层次、添加移除视图。...如果你对文本显示没有特殊要求,可以参考下 UILabel 内部的实现方式: 用 [NSAttributedString boundingRectWithSize:options:context:]...常见的文本控件 (UILabel、UITextView 等),其排版绘制都是在主线程进行的,当显示大量文本时,CPU 的压力会非常大。...图像的绘制 图像的绘制通常是指用那些 CG 开头的方法把图像绘制到画布中,然后从画布创建图片并显示这样一个过程。这个最常见的地方就是 [UIView drawRect:] 里面了。...YYAsyncLayer 是 CALayer 的子类,当它需要显示内容(比如调用了 [layer setNeedDisplay])时,它会 delegate,也就是 UIView 请求一个异步绘制的任务

1.4K10
领券