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

深入详解iOS适配技术

storyboard中使用Autoresizing.gif 从上图看出,storyBoard中Autoresizing只能设置两个父子视图之间相对位置关系,一共6条虚线,分别是周围四条虚线和方块内部两条线...周围四条虚线分别代表子控件距离父控件上、下、左、右之间距离关系/或者叫约束关系,周围四条虚线所包围小方块代表子视图,小方块内部两条带双向箭头线分别代表子控件宽度和高度。...当我们点击周围四条虚线时,虚线会变成实线,代表子控件和父控件在这个方向上间距被固定了。当我们点击子视图内部虚线时,同样也变为实线,代表子视图宽度或者高度被固定了。...view上 [self.view addConstraint:yCos]; AutoLayout第三方开源框架-Masonry Masonry是目前最流行、最常用AutoLayout第三方开源框架...在其他尺寸(3.5、4.7、5.5英寸)横屏状态也不会显示。当然,在iPad全屏(横屏竖屏)状态下同样不会显示。

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

想要漂亮蒙版指引吗?跟着我手把手教你写出来

之前一致觉得中间镂空是用周围很多块不露空组合在一起形成,所以很复杂镂空我都觉得很难弄。 这个需求我之前想法一定是做不出来,就百度一下蒙版指引做法。...我们创建一个继承于 UIView 类名字叫做GBBaseMaskView类用于封装我们指引共同点。...[self actionButtonClick]; }]; 此处我们用到是我们基于 UIView一个快捷添加点击事件分类方法。...之后 keyWindow换回来之后,我们控件就被移除,之后就被释放了。让我们用 AppDelegate创建 window这样才保证不会出问题。 听完觉得说很有道理,就改了一下,果然解决了。...,我们刚才代码为什么没有出现虚线代码?

1.3K20

自定义一个浮层弹窗视图

早在2017年年初,我就用七八篇文章篇幅系统介绍过Objective-C中CoreAnimation框架。...CoreAnimation是iOS中实现动画框架,整个iOS中动画(比如UIView中封装动画、UIViewController切换时转场动画、UITableViewCell移除增添时动画等,...; 4,移除弹窗视图时候,就将弹窗背景视图从父视图上移除即可。...展示浮层上自定义提示视图时候,我使用了UIView动画,可以在这里实现浮层上自定义提示视图展示时候动画。 给浮层背景视图添加一个点击手势,以在点击时候移除该浮层。...写在最后 UIKit框架中各组件自带各种动画效果,实际上都是对CoreAnimation这个框架中相关接口封装。

1.3K30

iOS学习——UIView研究

在iOS学习——iOS 整体框架及类继承框架图中列出了iOS中所有类继承框架图,其中下面这张图就是iOS开发中界面相关类继承框架图。 ?...,也是直接采用block方式实现 视图上手势相关扩展 UIView (UIViewGestureRecognizers)  ,主要提供添加、移除和手势开始前回调3个方法 视图上运动效果相关扩展 UIView... (UIViewMotionEffects),主要提供添加和移除运动效果两个方法,还提供一个获取视图上所有运动效果属性 视图上安装约束相关扩展 UIView (UIConstraintBasedLayoutInstallingConstraints...) ,主要提供添加单个/多个、移除单个/多个约束方法 视图上约束相关扩展 UIView (UIConstraintBasedLayoutCoreMethods),主要提供4种约束更新方法 视图上约束共存相关扩展...(UIConstraintBasedLayoutLayering) 510 511 /** 返回给定框架视图对齐矩阵 */ 512 - (CGRect)alignmentRectForFrame

2.7K80

iOS14开发-入门知识

Apple官网与开发者网站 https://www.apple.com https://developer.apple.com 开发硬件 苹果电脑: iMac 或者 MacBook Mac mini...Cocoa Touch 层为应用程序开发提供了各种有用框架,并且大部分与用户界面有关,它负责用户在 iOS 设备上触摸交互操作以及一些其他关键功能。 创建第一个iOS项目 ?...纯代码 删除 Info.plist 中Main Storyboard file base name和Application Scene Manifest最里层Storyboard Name。...UIView常见方法 addSubview:添加视图到父视图。 removeFromSuperview:将视图从父视图中移除(需提前讲解触摸方法)。...连线前提 Storyboard 中 UIViewController 与想拖拽类进行了关联。 经典连线错误 UIView 连线后删除了类中 @IBOutlet 或者 @IBAction。

2.8K40

UIKit Dynamics:开始入门 —《Graphics & Animation系列一》

碰撞行为在与其相关每个项目周围形成“边界”; 这将它们从可以通过彼此对象变成更坚实对象。 更新前面的图,可以看到碰撞行为现在与两个视图相关联: ?...因此,如果以编程方式更改对象框架转换属性,则可以预期这些值将被覆盖。 这意味着当它处于动态控制之下时,不能使用变换来缩放对象。...它还具有对边界读取权限,用于确定项目的大小。 这允许它在物品周边周围产生碰撞边界,并且在施加力时计算物品质量。...为了避免使用大量消息弄乱控制台日志,请删除在上一节中添加collision.action日志记录。...在viewDidLoad中,从square声明中删除let关键字,以便它使用新属性而不是局部变量: square = UIView(frame: CGRect(x: 100, y: 100, width

1.8K30

iOS9新特性——堆叠视图UIStackView

和一些第三方框架,对于创建约束来说,已经十分方便,但是对于一些动态线性布局视图,我们需要手动添加约束不仅非常多,而且如果我们需要插入或者移除其中一些UI元素时候,我们又要做大量修改约束工作...我们向其中拖入任意数量view,设置不同颜色,就实现了我们想要效果,并且可以随意动态删除和添加其中view数量,不需要改变约束。...技巧:因为StackView继承于UIView,因此在布局改变时候,我们可以使用UIView动画,如下:         //在添加view时候会有动画效果,移除时候没有         [stackView...有关被管理视图添加与移除: //初始化方法,通过数组传入被管理视图 - (instancetype)initWithArrangedSubviews:(NSArray<__kindof UIView...; //添加一个视图进行管理 - (void)addArrangedSubview:(UIView *)view; //移除一个被管理视图 - (void)removeArrangedSubview:

1.7K10

UIView不可不知秘密

前言: 1、在Mac OS中NSWindow父类是NSResponder,而在iOS中UIWindow父类是UIView。程序一般只有一个窗口但是会又很多视图。...2、UIView作用:描画和动画,视图负责对其所属矩形区域描画、布局和子视图管理、事件处理、可以接收触摸事件、事件信息载体等等。...下面介绍是view添加以及删除时所触发方法 // 当视图添加子视图时调用 - (void)didAddSubview:(UIView *)subview; // 当子视图从本视图移除时调用...- (void)willRemoveSubview:(UIView *)subview; // 当视图即将加入父视图时 / 当视图即将从父视图移除时调用 - (void)willMoveToSuperview...:(nullable UIView *)newSuperview; // 当试图加入父视图时 / 当视图从父视图移除时调用 - (void)didMoveToSuperview; // 当视图即将加入父视图时

1.6K90

IOS基础知识第二季

applicationDidFinishLau main创建自动释放池,调用UIApplicationMain,释放自动释放池 10.作业: icon、default、app名字、100秒倒计时、后台挂起 11.UIKIT框架结构...UIView是视图基类 UIViewController是视图控制器基类 12.每个应用至少一个窗口,UIWindow继承UIView 自动创建(xcode4.5之后) 13.UIScreen...delegate:nil cancelButtonTitle:@”确定” otherButtonTitles:nil] autorelease]; [alertView show]; 18.添加视图和删除视图...removeFromSuperview:视图从父视图移除 19.视图属性 19.1tag属性标签值 view2.tag = 2;//设置tag属性 UIView *_view = [self.window...SubView *_view = (SubView *)[self.window viewWithTag:110]; 这样view才能使用subview中方法 这样我们自定义UIView需要重载

94960

iOS_系统自带地图圆形区域选择范围

) 4.实现长按聚焦, 搜索聚焦(地理编码), (不跟踪用户定位) 5.聚集操作:删除原理大头针,在新经纬度添加大头针,并将地图移动到新经纬度(反地理编码获得位置信息) 6.大头针定制:     ...并根据按钮center和shaowViewcenter计算出两个间距离     (5)画虚线shapeLayer, label显示半径大小 7.点击右下角按钮, 返回用户定位, 并时刻跟踪 代码实现...0.5; if (self.changedRadius) { self.changedRadius(_button); } } /** ** lineView: 需要绘制成虚线...view ** lineLength: 虚线宽度 ** lineSpacing: 虚线间距 ** lineColor: 虚线颜色 **/ - (void)drawDashLine...NULL,CGRectGetWidth(lineView.frame), 0); [shapeLayer setPath:path]; CGPathRelease(path); // 把绘制好虚线添加上来

2.2K10

【IOS开发基础系列】Autolayout自动布局专题

很明显一个是自己为原点坐标系,一个是以屏幕为原点坐标系。         当谈到自动布局,橙色代表坏。InterfaceBuilder绘制两个橙色方块:一个是虚线边框,一个是实线边框。...虚线方块是根据自动布局显示视图frame。实线方块是根据你在屏幕上放置视图frame。这两个应该吻合,但是这里并没有。 Note:你可能会奇怪,为什么Xcode不为X轴方向自动增加一个约束。...,用到这个UIView属性。..., 有一个良好自动布局框架, 则会让我们事半功倍....ZXPAutoLayout详细教程点此- github地址点此 //设置一个背景为半透明红色view,上下左右四边都距离superview距离为10 UIView *bgView = [UIView

25740

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

) 全局属性 //购物车View @property (weak, nonatomic) IBOutlet UIView *shopCarView; //添加按钮 @property (weak,...*shop = [[UIView alloc] initWithFrame:CGRectMake(x, y, width, height)]; //设置商品背景颜色 shop.backgroundColor...= 5); //添加一个商品,就可以删除一个商品,此时要改变删除按钮状态 self.removeButton.enabled = YES; 移除按钮点击事件 //移除最后一个商品 UIView...*lastShopView = [self.shopCarView.subviews lastObject]; [lastShopView removeFromSuperview]; //移除一个商品后...,说明购物车有位置可以装商品,要改变添加按钮状态 self.addButton.enabled = YES; //如果购物车商品数量为0,要设置删除按钮为不可点击 button.enabled =

60640

iOS开发之扫描二维码

自iOS7以后,iOS扫描二维码不需要借助于第三方框架了,苹果在AVFoundation中原生支持了扫描二维码API,主要涉及到5个类,这5个类在自定义相机或者视频时也用得上,网上有很多介绍,这5个类分别为...AVCaptureVideoPreviewLayer:相机拍摄预览图层,是CALayer子类,使用该对象可以实时查看拍照视频录制效果,设置好尺寸后需要添加到父viewlayer中。...= self.view.bounds; [self.view.layer insertSublayer:layer atIndex:0]; //5、创建周围遮罩层...maskLayer.delegate = self; [self.view.layer insertSublayer:maskLayer above:layer]; //让代理方法调用 将周围蒙版颜色加深...UIView动画中修改约束是没效果,需要在设置完约束以后,加上[self.view layoutIfNeeded];。

1.8K40

【iOS】UI基础Day1-笔记(拖线、UIView方法、属性等)

UIButton *btn; IBOutlet:只有声明为IBOutlet属性,才能跟storyboard中控件进行连线 -(IBAction)delete1{//移除控件[self.myTitle...:]: this class is not key value coding-compliant for the key 解决办法:删除多余连线 找不到对应方法 'NSInvalidArgumentException...', reason: '-[ViewController delete2]: unrecognized selector sent to instance >解决办法:添加对应方法或者删除多余连线...UIView介绍 控件:界面中所有元素 控件共有属性:尺寸、位置、背景色等等 - 控件共有属性封装在其父类——UIViewUIView常见属性 superView:查看父控件 NSLog(@"...alloc] init]; //在yellowView中添加uiBtn [self.yellowView addSubview:sw1]; removeFromSuperview:移除控件 [self.myTitle

50720

CALayer 图层概念二、CALayer属性二、方法

UIView负责监听和相应事件.UIView是更高层封装 在 iOS 中,你能看得见,摸得着东西基本上都是UIView.比如一个按钮,一个文本标签,一个文本输入框, 一个图标等.这些都是UIView...首先 : CALayer是定义在QuartzCore框架中. CGImageRef, CGColorRef两种数据类型是定义在CoreGraphics框架....UIColor, UIImage是定义在UIKit框架....其次 : QuartzCore框架和CoreGraphics框架是可以跨平台使用,在iOS和Mac OS X上都能使用 (C语言编写) 但是UIKit只能在iOS中使用 (OC编写)....其实,对比CALayer,UIView多了一个事件处理功能,也就是说,CALayer不能处理用户触摸事件,而UIView可以.所以,如果显示出来东西需要跟用户进行交互的话,用UIView.UIView

1.4K70

绘图-几个较复杂统计图案例实现分析

曲线动态图 曲线动图.gif 绘制关键步骤: 我们可以看到上图动图是一组组合动画,共有四部分组成:坐标横竖虚线动画、曲线动态绘制、小圆点动画、渐变区域动画。...下面逐个分析 坐标横竖虚线动画 第一步设置一个 CAShapeLayer 并设置 .lineDashPattern 属性,使之成为虚线。...小圆点动画 根据数据源,在每一数据点处放上一个自定义UIView,在此自定义UIViewdrawRect中绘制圆形图形,并且设置 shape.layer.opacity = 0;,即让这些小圆点(...很多UIView)刚开始是不显示,加载在当前UIView上,计算每一个点动画开始时间,达到小圆点依次作动画效果。...在使用drawRect:重绘页面时注意首先移除已有的图层maskLayer 同时做动画。

1.4K20

【IOS开发基础系列】UIView专题

提示:如果UItextfield不显示,可以考虑设置它样式,因为其创建默认是虚线,没有边框。         在ios7里边,主窗口和次窗口是没有区别的。         ...removeFromSuperview     把接收者从它父视图或者窗口移除,并在响应链中移除。...消息或者子视图从接收者视图层次中移除因为它要被添加到其他视图了 3 UIView动画 3.1 概述         UIView视图动画功能,可以使在更新切换视图时有放缓节奏、产生流畅动画效果,进而改善用户体验...UIView可以产生动画效果变化包括:     • 位置变化:在屏幕上移动视图。     • 大小变化:改变视图框架(frame)和边界。     • 拉伸变化:改变视图内容延展区域。     ...那么将在每次设置更改frame时候自动调用drawRect:。

36930
领券