blurView.backgroundColor= [UIColorcolorWithRed:0green:0blue:0alpha:0.3];
在iOS中,您可以使用windows和views在屏幕上显示应用程序的内容。 Windows本身没有任何可见的内容,但为应用程序的views提供了一个基本的容器。 views定义了您想要填充某些内容的windows的一部分。 例如,您可能具有显示图像,文本,形状或其组合的views。 您还可以使用views来组织和管理其他views。
1、创建UINavigationItem Category @implementation UINavigationItem (SXFixSpace) +(void)load { [self swizzleMethod:@selector(setLeftBarButtonItem:) swizzledSelector:@selector(sx_setLeftBarButtonItem:)]; [self swizzleMet
在iOS开发中,我们知道有一个共同的基类——NSObject,但是对于界面视图而言,UIView是非常重要的一个类,UIView是很多视图控件的基类,因此,对于UIView的学习闲的非常有必要。在iO
iOS中的事件大概分为三种,分别是Milti-Touch Events, Motion Events和Remote Control Events(events for controlling multimedia)。
到这里相关的说明已罗列完毕,有什么不清楚的可以下载Demo看看,或者在文章下方留言提问
https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/CreatingViews/CreatingViews.html
直接复制下面代码看效果 一、常规布局方式 517349-20160819194720781-2023804629.png 517349-20160819194712937-1138283651.pn
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/80521257
其实只需要在mas_updateConstraints:设置完需要更新的layout之后调用父视图的layoutIfNeeded方法就行。
IBAction和IBOutlet IBAction:只有返回值声明为IBAction的方法,才能跟storyboard中的控件进行连线 @property (weak, nonatomic) IBOutlet UIButton *btn; IBOutlet:只有声明为IBOutlet的属性,才能跟storyboard中的控件进行连线 -(IBAction)delete1{//移除控件[self.myTitle removeFromSuperview];} ---- 拖线的其他方式 一个对象能连接多个方法
今天升级最新IDE Xcode,准备适配iOS14 API,结果发现app首页的cell中按钮也无法点击了。
一般情况都是说UIViewController的生命周期,UIView的生命周期经常被忽视。
关于iOS的布局主要有两种方式,分别是AutoResizing和AutoLayout。其中AutoResizing作为一种旧的布局方式,在AutoLayout被推广之后已经很少被使用。为了更加清晰的了解iOS的布局方式,本篇针对于这两种布局方法进行简要的总结。 一.AutoResizing 我们在使用AutoResizing进行布局的时候,其主要思想就是设置子视图跟随父视图的frame变化而变化。具体的情况,我们可以设置左跟随,右跟随等等。下面是AutoResizing在代码中的使用。 //父视图 UIVi
相信很多同学都知道在iOS7之后调整导航栏两侧按钮距离左右间距,其实就是在左右barButtonItem的数组中添加一个宽度为负的占位item。 - (void)addLeftBarButtonItem:(UIBarButtonItem *)leftBarButtonItem { UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace t
A view (an object whose class is UIView or a subclass of UIView) knows how to draw itself into a rectangular area of the interface.
前段时间闲着无聊和盆友就搞了个图床站Chevereto-Free,忽然发现居然有API提供,而且很简单,只需要一个KEY就可以
本文主要介绍了一种基于Masonry的视图模块化方案,通过使用自定义UIView和UICollectionView实现视图的模块化,简化了视图的创建过程,提高了开发效率。同时,还介绍了一种基于Masonry的自动计算视图间距的方法,简化了间距调整的实现过程。
iOS的组件都是封装好的,又没法看源代码,所以我们不容易知道组件的结构,所以我们可以遍历所有的视图,打印出来,来查看结构
1.分辨率:320*480,640*960 2.icon图标需要两个(57*57) 114*114 用于视网膜屏幕 icon@2x.png,icon.png 3.狂写代码,先写再调试、搜索、自学 4.iphone5设备是4英寸之前是3.5英寸,视网膜技术960*640 iphone4 5.320*480 启动页 640*960 Default@2x.png iphone5 Default-568h@2x.png 6.icon需要有29*29 和 58*58 7.模拟器快捷键: 8.沙盒:IOS
Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。本篇博客的主题不是教你如何去使用Masonry框架的,而是对Masonry框架的源码进行解析,让你明白Masonry是如何对NSLayoutConstraint进行封装的,以及Masonry框架中的各个部分所扮演的角色是什么样的。在Masonry框架中,仔细的品味干货还
iOS绘制九宫格的方式至少有两种。一种是利用UIKit框架提供的UICollectionView直接定制一个九宫格。另一种方式是根据行高、列宽动态计算每个格子的位置,后者这种纯计算的方式我们写一次就够了。今天我带给大家两个我写好的宏,以后制作九宫格,我们直接用这个宏即可! /** 设置格子的X坐标 * SUPERVIEW 指九宫格每个小格子的父视图 * WIDTH 指九宫格每个小格子的宽度 int width = (VVS_SCREEN_WIDTH - (colunm + 1) * margin
在使用view的缩放的时候,layer.border.width随着view的放大,会出现锯齿化的问题,解决这个问题需要设置这个属性。
一、继承自UITextfield自定义一个SSTouchTextField 代码如下: #import "SSTouchTextField.h" @implementation SSTouchTextField #pragma mark - Private - (void)setBackgroundHighlighted:(BOOL)highlighted{ [UIView animateWithDuration:0.3f delay:0.f options:UIViewAnimationOp
例如:我们需要布局一个视图view1,使他距离父视图上下左右都为10,NSLayoutConstraints布局代码如下:
由于View对象是应用程序与用户交互的主要方式,因此它们有许多责任。 这里仅仅是少数:
原因:往cell添加子视图的方式不规范,导致contentView 置于自定义控件的上层,引发界面无响应(注意处理相关方法)
3.times { puts 'hello world' } 这是一条Ruby语句,它会打印“hello world”三次,意图清晰,语法简洁。
bounds是指这个view在它自己坐标系的坐标和大小 而frame指的是这个view在它superview的坐标系的坐标和大小区别主要在坐标系这一块。很明显一个是自己为原点的坐标系,一个是以屏幕为原点的坐标系。
实现思路: 1.输入显示试图和系统键盘的出现和隐藏。 2.用UILabel和UITextField实现输入框。
LaunchScreen.storyboard 界面 : 该界面不是用于展示应用程序的界面 ;
iPhone自诞生以来,随着其屏幕尺寸不断的多样化,屏幕适配的技术一直在发展更新。目前,iOS系统版本已经更新到9.3,XCode的最新版本已经是7.3,仅iPhone历史产品的尺寸就已经有4种:3.5英寸、4.0英寸、4.7英寸、5.5英寸。最近,iPhone家族又诞生一款iPhoneSE,鉴于这款iPhoneSE的屏幕尺寸和iPhone5S的尺寸一模一样——同样是4.0英寸,广大iOS开发者可算是松了口气,不然iOS的屏幕尺寸真的是越来越让人眼花缭乱。 按照时间顺序,屏幕适配是这样发展的:纯代码计算frame-> autoresizing(早期进行UI布局的技术,仅适用于约束父子控件之间的关系)->AutoLayout(iOS6/2012年、iPhone5被引入,比autoresizing更加高级,旨在替代autoresizing,可以设置任何控件之间的关系)->sizeClass(iOS8出现,用于解决越来越多的屏幕尺寸的适配问题)。 在iPhone3gs时代,手机的屏幕尺寸有且只有一种,也就是3.5英寸。开发app的时候,根本不用考虑同一个视图在不同尺寸的屏幕上显示的问题。iOS开发者完全可以用纯代码的方式把一个控件的frame写死。 后来apple公司推出了4.0英寸的iPhone5和iPhone5S,所以,针对于不同尺寸的屏幕,再把控件的frame写死就不可取了。(其实也不是不可取,很多iOS开发者做屏幕适配的时候不是用的autoresizing或autolayout,而是以代码的方式动态获取屏幕的尺寸,然后根据屏幕的尺寸来写死子控件的frame。使用这种方式你会在代码中无辜增加很多if...else... 的条件判断语句。另一种方式是获取到屏幕的尺寸后,按照控件和屏幕的比例来设置控件的frame,其本质上也是写死frame。所以这两种方式都不可取,毕竟将来会回出现越来越多的屏幕尺寸。从开发的角度,重复繁琐的代码会牵绊住开发者的进度;从程序设计角度,这样的设计思路不够高级,且日后不易于拓展和维护。)
根据标识来识别每一个事件, 针对指定的事件进行取参埋点。而事件的标识与参数信息都写在配置表中,通过动态下发配置表来实现埋点统计。
在早期,iPhone尺寸比较固定,都是4英寸屏幕的时候,在计算App的尺寸时,只要稍微根据Window的size稍微计算一下就可以了,但是前年iPhone6以及iPhone6Plus的推出,作为开发者就会警觉为了多机型的适配,使用AutoLayout是势在必行的一件事情了,但是说实话,我在用了AutoLayout之后真的觉得挺不方便的。
TangramKit是iOS系统下用Swift编写的第三方界面布局框架。他集成了iOS的AutoLayout和SizeClass以及Android的五大容器布局体系以及HTML/CSS中的float和flex-box的布局功能和思想,目的是为iOS开发人员提供一套功能强大、多屏幕灵活适配、简单易用的UI布局解决方案。Tangram的中文即七巧板的意思,取名的寓意表明这个布局库可以非常灵巧和简单的解决各种复杂界面布局问题。他的同胞框架:MyLayout是一套用objective-C实现的界面布局框架。二者的主体思想相同,实现原理则是通过扩展UIView的属性,以及重载layoutSubviews方法来完成界面布局,只不过在一些语法和属性设置上略有一些差异。可以这么说TangramKit是MyLayout布局库的一个升级版本。大家可以通过访问下面的github站点去下载最新的版本:
前言 UI布局是整个前端体系里不可或缺的一环。代码的布局是设计语言与用户视觉感受沟通的桥梁,不论它看起来多么简单或是琐碎,但不得不承认,绝大部分软件开发的问题,都是界面问题。那么,如何高效的完成UI开
1️⃣CGAffineTransformMakeTranslation (相对平移)假设是一个视图,那么它的起始位置 x 会加上tx , y 会加上 ty 2️⃣CGAffineTransform
UI布局是整个前端体系里不可或缺的一环。代码的布局是设计语言与用户视觉感受沟通的桥梁,不论它看起来多么简单或是琐碎,但不得不承认,绝大部分软件开发的问题,都是界面问题。那么,如何高效的完成UI开发,也是软件行业一直在克服的问题。
早在2017年年初,我就用七八篇文章的篇幅系统介绍过Objective-C中的CoreAnimation框架。CoreAnimation是iOS中实现动画的框架,整个iOS中的动画(比如UIView中封装的动画、UIViewController切换时的转场动画、UITableViewCell移除增添时的动画等,都是对CoreAnimation的封装)都是通过CoreAnimation实现的。
本文介绍了iOS事件体系中的一些基本概念和原理,包括UITouch、UIEvent、UIResponder、响应链、以及UIView和UIViewController对象在事件响应中的作用。同时,也简单介绍了一些与事件响应相关的属性、方法和用途。
本文介绍了如何使用 Aspects 库实现 iOS 内的内存泄漏检测,通过结合 YFMemoryLeakDetector 工具类,可以更加快速、精准地检测出内存泄露问题,从而帮助开发人员提前发现并修复问题,提高程序的稳定性和可维护性。
Masonry常规开发指导整理自此篇文档(可别说我转载不注明出处哦,^_^),后面加入了笔者在实际开发使用过程中遇到过的一些问题,希望对你有所帮助。
代码地址: https://github.com/RainManGO/PanView
addSubview: Adds a view to the end of the receiver’s list of subviews. 译:增加一个视图到接收者的子视图列表中。 - (void)addSubview:(UIView *)view Parameters view The view to be added. This view is retained by the receiver. After being added, this view appears on top of any ot
本篇主要内容: 1.Frame与Bounds的区别 2.中心点(position)与锚点(anchorPoint) 3.视图与图层的坐标系
Autolayout Autolayout是一种“自动布局”技术,专门用来布局UI界面的 Autolayout自iOS6开始引入,由于Xcode4的不给力,当时并没有得到很大推广自iOS7(Xcode5)开始,Autolayout的开发效率得到很大的提升 苹果官方也推荐开发者尽量使用Autolayout来布局UI界面 Autolayout能很轻松地解决屏幕适配的问题 Autolayout的2个核心概念 参照 约束 与 Autoresizing 区别 在Autolayout之前,有Autoresizing可以
简介 简化iOS应用使用纯代码机型自适应布局的工作,使用一种简洁高效的语法替代NSLayoutConstraints. 最新示例: 点击下载 项目简议: 如果再看到关于纯代码,xib或storyboa
image.png 前言: 师弟要毕业设计,就敲了swift版的计算器给他参考下。现在把代码放上来,通过这个计算器,可以学习简单的封装:将逻辑与界面分离并提供接口的编程方式,这也是我们学习面向对象的必要点。 基于 xcode 9.0 swift4.0 一、先引用SnapKit框架 SnapKit自己看git引入 利用其来约束组件 二、新建一个继承UIButton类的类文件,命名为DWFuncButton,对其设置字体、颜色、风格代码如下: class DWFuncButton: UIButton {
领取专属 10元无门槛券
手把手带您无忧上云