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

iOS UI控件了解一下

origin也是一个结构体,包含2部分内容:x和y(ios坐标系以左上角为坐标原点(0,0),以原点向右侧为X轴正方向,原点下侧为Y轴正方向);size同样是一个结构体,包含2部分内容:width和height...-(CGRect)frame{   return CGRectMake(self.frame.origin.x,self.frame.origin.y,self.frame.size.width,self.frame.size.height...center.x = frame.origin.x + frame.size.width/2; center.y = frame.origin.y + frame.size.height/2; bounds...①创建button对象(如果本类有初始化方法,使用自己的;否则使用父类的); ②设置按钮显示相关的属性; ③为按钮添加点击事件; ④添加按钮到父视图上...(按钮)的属性及其使用,其他控件的使用都是类似的,了解了各种UI控件的属性及开发使用之后,就可以在测试用例设计及UI相关测试中,更精准地设计测试用例,针对每一类UI控件根据其属性设计特定的测试方法。

2.6K20

UIButton实现各种图文结合的效果以及原理

:和setImage:forSate:两个方法就可以实现具有图片和文字功能的按钮。...事件总是能找到解决方法的, 有的人会先建立一个按钮控件铺在下面,而在上面分别覆盖一个UIImageView和UILabel来实现;而有的人则干脆在UIButton上建立一个UIImageView和UILabel...答案是否定的,其实UIButton本身是可以支持各种图文结合的,既然UIButton上能同时显示图片和文字,那就可以肯定的说UIButton里面本身一定有一个UIImageView和UILabel8子视图...)/2来保证文本填充满所有的按钮区域,在下面的各种样式中凡是文字和图片垂直居中的情况下都要考虑这种情况 设置的代码为: titleEdgeInsets =UIEdgeInsetsMake(((selfHeight...contentHorizontalAlignment; // how to position content hozontally inside control. default is center 这两个属性来设置按钮的垂直和水平的整体位置的调整

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

    Quartz2D复习(四) --- 图层CALayer和动画CAAnimation

    UIView本身不具备显示的功能,是它内部的层才有显示功能 5)、通过CALayer对象,可以很方便的调整UIView的一些外观属性,比如:阴影、圆角大小、边框宽度和颜色。。。...动画对象会在指定的时间(duration)内,依次显示values数组中的每一个关键帧   path: 可以设置一个CGPathRef、CGMutablePathRef, 让图层按照路径轨迹移动。...如果设置了path,那么values将被忽略   keyTimes: 可以为对应的关键帧指定对应的时间点,其取值范围为0到1.0, keyTimes中的每个时间值都对应values中的每一帧。...如果没有设置keyTimes,各个关键帧的时间是平分的 12)、CAAnimationGroup --- 动画组   动画组,是CAAnimation的子类,可以保存一组动画对象,将CAAnimationGroup...的子类,用于做转场动画,能够为层提供移除屏幕和移入屏幕的动画效果。

    1.5K30

    【iOS】UI基础Day3-笔记(UIButton、购物车综合案例)

    代码中使用UIButton //实例化一个按钮 UIButton *button = [[UIButton alloc] init]; //设置按钮的frame button.frame = CGRectMake...添加按钮的点击事件 - 定义一些位置的常量和变量 //总列数 NSInteger allCols = 3; //商品的长度和宽度 CGFloat width = 100; CGFloat height...= self.shopCarView.subviews.count; //设置X,Y值 CGFloat x = (hMargin + width) * (index % allCols); CGFloat...:CGRectMake(x, y, width, height)]; //设置商品背景颜色 shop.backgroundColor = [UIColor redColor]; //添加到购物车 [self.shopCarView...,要改变添加按钮的状态 self.addButton.enabled = YES; //如果购物车商品的数量为0,要设置删除按钮为不可点击 button.enabled = (self.shopCarView.subviews.count

    62240

    动画分析步骤“三步曲”

    第4行设置当前UIButton登录按钮的位置,按钮的x坐标设置在整个界面之外,因此当前Button按钮是不可见的。第5行为登录按钮添加一个淡绿色背景。第6行设置登录按钮Title内容。...,frame的x坐标和y坐标相对于父控件的原点来计算,而bounds一般只能对width、height进行操作,它的x、y坐标只相对于自身而言,center描述的是x、y信息,即UIView的中心位置。...通过对frame中数据类型的追本溯源,可以得到以下结论:CGRect分别对应x坐标、y坐标、width、height四个属性。这四个属性表明当前UI在它的父控件上的位置,如self.view上。...通过以上分析可以知道,可以通过x、y坐标修改UIView的移动位置,还可以通过修改width或者height来修改UIView的拉伸、收缩效果。...对于bounds属性使用最多的还是width、height属性,center则经常使用x、y坐标属性。

    90510

    六天完成一个简单iOS App - 第一天

    UITabBar 中间添加按钮的实现 我们知道中间加号按钮是没有标题的,即使我们将标题设置为空,还有有标题的label站位,所以UITabBarItem是不能实现了,那么我们只能将一个button覆盖在中间这块区域上...方法一:添加站位控制器,我们可以在中间的位置上添加一个空的站位控制器,然后将button覆盖到UITabBar中间,这样做简单方便,但是创建了一个Controller和一个UITabBarItem没有别的用处只是用来站位...当我们在设置控件的宽高以及位置的时候需要设置self.frame.size.height;代码很长,那么我们可以写一个UIView的分类,直接就可以通过self.height来设置其高度。...; } @end 这样我们在设置宽高,x,y的时候就可以直接通过height,width,x,y来设置了,建议在这些属性前面加上前缀,防止和其他文件属性冲突 3....为什么不直接设置frame而需要一个中间量来设置呢? 因为在分类的方法实现中不可以直接访问本类的私有属性,但是可以调用本类的set,get方法。 4.

    1.1K50

    【 iOS 应用开发 】 UIKit 控件 ( UIView 属性 | storyboard 设置 | 模拟器 | 拖线关联 | tag | 软键盘操作 | 颜色值 | 代码生成控件 | 动画设置 )

    UIView 或 UIView 子类, 如 按钮 UIButton, 文字 UILabel 等都是继承自 UIView 的; 2.本质 : 每个 UIView 都可以当做一个容器, UIView 可以嵌套..., 这里为了避免这种情况, 需要 将 Type 属性设置为 Custom , 这样就可以自己定制按钮的属性了; 9.设置向上箭头按钮 : 设置向上箭头按钮, 并设置其 默认背景图片, 高亮状态背景图片...= frame; } 15.定义放大缩小的方法 : 放大缩小即修改 frame 属性中的 size 结构体中的 width 和 height 值, 增加就是放大, 减少就是缩小; 拖入两个按钮并设置按钮的...为 1 和 2 ; 5.方法关联 : 将两个按钮都关联到同一个方法上 , 注意这个方法必须能获取到按钮才可以 ; 6.获取 tag : 使用 sender.tag 即可获取 UIButton...frame.size.width -= 10; frame.size.height -= 10; frame.origin.x += 5; frame.origin.y

    5K30

    教你制作可移动的导航栏

    目前可移动的导航栏非常常见,以网易、京东、淘宝为首,都用到了此类导航栏,即可以左右滑动,选择更多。...ScreenHeight = UIScreen.main.bounds.size.height 2、创建属性 private var selectButton:UIButton?...(x: self.titleWidth * CGFloat(index), y: 0, width: self.titleWidth, height: self.titleHeight))...) 完成点击方法里面的内容: 1、为每个栏目设置tag值 2、为每个选中的栏目设置背景颜色为orange 3、为了人性化,选中的栏目尽可能移到界面中间。...这也是本文重点:根据选中的栏目(按钮),分别为topScroll设置不同的ContentOffset,主要有三种情况:一、选中的栏目是前几个 二、选中的栏目时后几个 三、选中其他栏目 前两种情况没办法偏移到界面中间

    1.6K60

    实践-小效果 III

    Paste_Image.png //按钮内容完美居中的方法 # 需要注意的是 这里的图片尺寸会采用图片的原始尺寸,所以要注意把 UIButton的尺寸设置的足够大才可以达到效果,否则会有图片文字重合的现象...可以说是专门为 UILabel和UIImameView添加点击效果的控件,认清楚这个事实,我们运用UIButton的时候就更准确了,我们在实际的开发中这样的会遇到这样的情况,有一个小图标,但是这个图标又能点击...(Scale_Y(5), Scale_X(7), Scale_Y(7), Scale_X(7))]; 不过值得一提的是 使用 SDWebImage为UIButtont添加的是 内容Image,而不是 BgImage...思路不错可以借鉴,大致如下: 点击按钮时切换按钮的图标同时设置 全局 isGrid 数值,并刷新 CollectionView。...根据全局的 isGrid 设置CollectionView 每个Cell的尺寸大小 SizeForItemAtIndexPath函数 在自定义CollectionViewCell中设置一个 是否为网格的属性

    1.1K20

    iOS项目——自定义UITabBar与布局

    ,所以新按钮完全覆盖了最中间的TabBarItem,最中间的TabBarItem的响应事件也会被屏蔽,因为按钮会先响应 自定义TabBar,重写其  方法,将所有4个TabBarItem的布局和大小进行修改...所以,如果添加【发布】按钮在viewDidLoad中会造成【发布】按钮在TabBar中是第一个添加的,这样会导致【发布】按钮会被TabBarItem覆盖了,这样我们就达到我们的目的。...TabBar中各子控件的属性和布局。...] forKeyPath:@"tabBar"]; ,关于如何获取属性和成员变量可以参见:三分钟教会你runtime获取属性和成员变量 self.subviews #import "XMGTabBar.h...在iOS的TabBarItem是自带该属性和控件的,我们可以根据自己的需求进行配置,下图是iOS11中的配置文档,可以对提示数量、颜色进行自定义设置,还可以对提示文字的属性进行不同状态下的配置。

    3.1K90

    iOS学习——UIPickerView的实现年月选择器

    ,包括我们的选择器的标题,取消、确定按钮,蒙层等大框架的布局,然后是子类在基类的基础上添加UIPickerView来实现选择器的基本功能以及数据加载和显示。...二 基类布局   在上一部分说了,基类布局主要是对整体的架构进行布局,我们先看下有哪些内容,包括了背景蒙层视图、弹出视图(包含标题行(又包含取消按钮、确定按钮和标题)、分割线和选择器),在子类中会进行一个整体的布局...,然后在BaseView.h中的注释我们说过了,点击背景遮罩图层和取消、确定按钮的点击事件实现效果在基类中都是空白的,具体效果在子类中进行重写来控制。...  首先是我们的子类向外暴露的方法只有一个类方法,该方法主要是让使用者提供选择器的标题、最小日期、日期选择完成后的操作等基本信息,方便我们对选择器的数据和操作进行设置。...还有取消、确定按钮的点击事件也都在这里进行控制和实现,我们根据自己的需要进行这是就可以了,一般是在点击确定按钮的时候调用我们的BRDateResultBlock,实现日期选择完成的操作。

    4.6K130

    理解iOS端的WebView同层组件

    在iOS中,我们使用WKWebView来创建Web视图,WKWebView在进行解析渲染时,会将Web组件渲染到WKCompositingView上,这个View是一个原生的UIView子类,通常WKWebView...内核会将多个组件共同渲染到同一个WKCompositingView上,但是如果某个HTML标签的style设置了overflow: scroll属性,并且内容超出容器的大小,WKWebView就会为其单独的创建一个...,将其id等信息传递给原生端,我们这里为了演示方便,只传递了很少的数据,实际上可以根据组件的需求向原生端传递非常丰富的数据,原生端根据这些参数来渲染和设置原生组件。...四 交互 原生组件渲染成功了,并非完事大吉,如果你为按钮增加了点击事件,会发现其并不会触发,这是因为WebView将事件都进行了拦截。...相比直接使用原生组件,同层组件的好处是显而易见的,其既拥有了原生组件强大的能力,又可以被大部分CSS属性进行影响,方便层级和组件间位置控制。

    3.2K20

    iOS 自定义分段控制器

    指示条可配置 4.最好能扩展菜单栏,如最多展示5个,多于5个可左右滑动 5.点击和滑动到某一界面,要知道这是哪个界面 列出来需求,要实现也变得简单了许多: 我们在.h里写出可配置的属性,并写好确定当前是哪个界面的代理...self createSubViews]; } return self; } 3.设置默认属性和创建子视图 //初始化默认属性值 - (void)initWithProperty...设置默认属性没什么好说的,创建子视图里有几点需要注意,一是标题按钮的创建,二是设置指示器的位置,三是配置多个内容的控制器视图,仔细看代码,逻辑其实也很简单明了 4.实现按钮点击事件和视图滑动事件 #pragma...,如外面有代理,也会将当前第几个页面的index回调给代理,外部逻辑处理会变得很简单 5.个性配置,即设置属性更改UI 我们实现属性的set方法,在set方法内部更改UI #pragma mark -...image.png 属性已经全部生效,头部菜单2个并且可滑动。 注:以上代码就是按顺序来的所有代码,其中用到了一个UIView的扩展文件,可直接访问UIView的left、width等属性。

    1.3K31
    领券