made in 小蠢驴的封面 背景:目前的iOS环境,相信大部分的人都还是做的业务开发,一个好的工具类,可以极大的提供开发效率,简化繁琐的设置步骤。接下来,简单介绍一个我在实际开发中抽取出来的工具类 - MNKit MNButton 业务开发中,UIButton控件应该算最常用的控件之一了,而且它的属性设置还贼麻烦,很多个都是要用 [ set XXX];方法去设置,设置事件(比如点击事件)还要传多个参数- (void)addTarget:(nullable id)target action:(SEL)
LaunchScreen.storyboard 界面 : 该界面不是用于展示应用程序的界面 ;
5. UIView的操作方法 1)添加视图 UIView的addSubview:方法可以添加子视图,对于同一个视图的所有子视图来讲,后添加的子视图会把已加的子视图盖在下面。 UIView提供了其他添加视图的方法(详见下表):
//需要导入框架QuartzCore.framework,并且在当前类中引用#import
UIButton的用处特别多,这里只记录下把按钮应用在图文显示的场景,和需要把图片作为按钮的背景图片显示场景;
这8个元素(或元素组,因为箭头和“Dance Club”文本是一起动画的)是通过不同的开始时间递进进入视图的,这就是我们要在动画中获取的非常酷的波浪感效果。
//按钮初始化类方法 UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];//这里创建一个圆角矩形的按钮 //按钮初始化实例方法 UIButton *button1=[[UIButton alloc]initWithFrame:CGRectMake(50, 300, 200, 50)]; //能够定义的button类型有以下6种, // typedef enum { // UIButtonTypeCustom
代码中使用UIButton //实例化一个按钮 UIButton *button = [[UIButton alloc] init]; //设置按钮的frame button.frame = CGRectMake(100, 100, 120, 30); //设置按钮的背景颜色 button.backgroundColor = [UIColor greenColor]; //设置按钮普通状态下的文字和文字颜色 [button setTitle:@"普通状态" forState:UIControlStateNo
项目创建流程 : ① 选择 Create a new Xcode project , ② 创建 Single View Application 项目 , ③ 设置项目信息 , ④ 设置代码路径并创建 ;
本片文章前三章内容大家比较常用,后面的可能会不那么常用,前面的基础内容不想看了可以直接从第4段开始
学习iOS开发已经有一段时日了,之前一直没有系统的对iOS开发的相关知识进行归纳总结,导致很多知识点云里雾里在脑子里形不成iOS开发的思想,现将自己在学习过程中遇到的一些知识进行总结,希望能对iOS初学者能有一定的帮助。最初学iOS的时候苦于没有大神指点,全靠自己一点点摸索,确实走了很多弯路,不希望还有小伙伴跟我一样走过多的弯路。 由于本人只是从去年11月份才开始玩iOS(附上自己的学习路线,如下图),受限于能力,难免有一些不完善或不恰当的地方,希望大神们多多见谅,勿拍砖,有不足或需要完善的地方也希望
注:虽然有些写法是缩写,但需要考虑到遇到你的代码或函数名称可能是不同语言文化背景习惯的人时候
UIButton一般分为高亮的普通两种状态,原生的方法可以设置这两种不同状态下的文字颜色,文字内容,背景图片,按钮图片。但是不能设置按钮的背景色。
这是一个非常典型的添加图标按钮的方式。UIButton类有一个便利的方式来构建一个按钮:+buttonWithType:类方法。我将按钮类型设为UIButtonTypeCustom,意味着没有默认的风格会被设置,完全取决于我。这是一种实用的简单图标按钮,没有边界和其他怪异的风格需要移除。有点类似于CSS中对按钮进行重置。
首先先来看看动画设计中的三个角色:产品设计师、算法分析师以及伟大的程序员都有哪些职责。
UIButton的初始化一般使用其类方法,+ (id)buttonWithType:(UIButtonType)buttonType;
2. UIButton支持更多配置。UIButton.Configuration是一个新的结构体,它指定按钮及其内容的外观和行为。它有许多与按钮外观和内容相关的属性,如cornerStyle、baseForegroundColor、baseBackgroundColor、buttonSize、title、image、subtitle、titlePadding、imagePadding、contentInsets、imagePlacement等。
在平时的开发过程中,我们经常会听到离屏渲染这个词,在面试中也会经常被面试官问到,那么在iOS开发中到底什么是离屏渲染?离屏渲染有什么性能问题?离屏渲染是否应该完全禁止呢?
以前我们在项目中使用搜索框的时候,如果用系统自带的控件则是使用UISearchDisplayController,而自从iOS8之后,系统重新给我们提供了一个搜索控件:UISearchController。在UISearchController中我们无需再自己初始化UISearchBar,只需要提供searchResult展示的视图。然而在开发中,我们往往需要根据项目的风格来改变UISearchBar的外观,通过继承的方式,我们可以完全定制符合项目风格的外观,然而有些情况下我们很难短时间内完成全部的外观定制工作,譬如我们项目用的好几个旧框架,代码中充斥着各种写好的UISearchBar的展示,而改动底层框架并不是一个较好地实践。于是我开始搜索并总结出了几个不通过继承的方式来更改UISearchBar外观的方法。
解决办法:既然定位到问题所在,办法就是保证iOS 13 之后,每次也都能拿到有去只有一个对象。方法有很多,我的方法代码如下:使用 static 配合 gcd
项目介绍:首先上边显示的是透明的视图,透明度为0.8 这是一个vc 设置vc的view的背景颜色为clearcolor 上边是一个按钮,设置按钮的透明度为0.8 背景为黑色 下边是一个btn 用来做点击事件。 代码附上: - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor yellowColor]; UIButton *btn = [[UIButton all
博客地址 : http://blog.csdn.net/shulianghan/article/details/50051499 ;
当tableView中的数据过多的时候,在tableView上加一个搜索框就变的很必要了,本文就讨论搜索控制器的使用,以及谓词的简单实现。
此博客为初级iOS而写,这里不讲难以理解的知识,就说说怎么样封装一个简单的控件。我记得在我开始自己第一个封装控件的时候,真的是一筹莫展,就像抱着一个西瓜不知道怎么下口。 我们经常用到三方控件,无一例外都是封装好的。要想快速学习,有一个途径就是看别人的封装源码。封装好才类使用起来很爽,很傻瓜易用。在此感谢那些无私开源的人,给我们很多学习的机会。网上封装多不胜数,但却很少有人告诉一个小白你应该怎么去封装。即便是初级我想你可能也封装过自己的类,我也如此,只不过我愿意把这些写出来给不会的人看看。 学习编程的时候听老
(1)navigationBar导航栏可以被看作是self.navigationController一个属性导航控制器,它可以由点直接表示self.navigationController.navigationBar。当然navigationBar他还是很物业。让我们风格barStyle、背景backgroundColor、frame属性(能够获取宽高这些信息)。还能够用setBackgroundImage方法设置背景图片。当然图片多了能够使用clipsToBounds剪裁。
目前可移动的导航栏非常常见,以网易、京东、淘宝为首,都用到了此类导航栏,即可以左右滑动,选择更多。见下图紫色圈内 网易新闻客户端 本文将会介绍这类导航栏的做法,方法很多,但关键思路是一样的,希望给大家
1)、在ios中,能看得见摸得着的东西基本上都是UIView, 比如按钮、文本标签、文本输入框、图标等,这些都是UIView
如下图所示:自定义PersonalCenterView,如何在controller拿到按钮(小箭头)的点击方法?
自从15年iOS开发市场大热之后,最近两年行情确实有点惨淡,看到很多企业招聘要求动不动就2年/3年以上iOS开发经验,确实有点无奈,感觉对初学者或者刚入门的小白们比较不友好。
场景需求 单例类ThemeConfig的一个BOOL类型的属性isNight决定是否夜间模式。 某设置页面,通过按钮的事件改变该属性isNight的值。 WKWebView网页通过注册并实现KVO方法,监听isNight值的变化,以切换网页背景颜色。 拟解决方案 拟解决方案1 [self.myWKWebView setOpaque:NO]; self.myWKWebView.backgroundColor = themeInfo.selectedBackgroundColor; 拟解决方案2 // 改变网页
步骤: 1.打开Xcode,单机Creat a new Xcode project 2.左边选择ios下Application,右边选择single view Application 3.填写项目名称单机Next 4.ViewController.h中定义成员和方法 // // ViewController.h // TestCalculator4 // // Created by heyonggang on 13-11-28. // Copyright (c) 2013年 MiracleHe. A
Swift 可以利用 OC 的 runtime 和 KVC ,在运行时向一个对象添加值存储,这种方式称之为Associated Object。在使用 extension 扩展现有类的功能时,使用Associated Object的方式,可以将一个值 “关联” 到已有的要扩展的类上。该知识点在 iOS 开发中使用往往能优雅地解决很多问题。
UIButton 的全面解析 建议收藏,用到的时候来这里一查就都明白了 //初始化Button 不用alloca init 的方法 用便利构造器初始化 UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; typedef NS_ENUM(NSInteger, UIButtonType) { UIButtonTypeCustom = 0, -自定义风格 UIButtonTypeSystem NS_ENUM
如果想给已经封装好的类添加方法 比如给UIButton添加一个异步下载图片的方法可以使用分类。比如我们要增加的方法需要实例变量很多 里面要用到很多的实例变量来执行逻辑 那么我们做好的选择是选择继承
在iOS开发过程中,页面跳转时在页面之间进行数据传递是很常见的事情,我们称这个过程为页面传值。页面跳转过程中,从主页面跳转到子页面的数据传递称之为正向传值;反之,从子页面返回主页面时的数据传递称之为反向传值。
在这里我以UIButton为例子给大家展示一种实现方法,主要依靠runtime实现。废话不说上码... 1.扩展一般属性NSString @interface UIButton (CJButtonType) @property (nonatomic, strong) NSString *typeString; @end /////////////////////////////////////////////// #import "UIButton+CJButtonType.h" #import <objc
storyboard进行界面设计固然不错,特别是对于初学者经常会使用设计器进行界面设计,但是实际开发过程中我们很多情况下会直接使用代码进行界面布局,特别是对于复杂的界面布局更是如此。下面我们就从一个空项目建立一个类似于前面的登录界面。
第二天任务: 项目主框架搭建完毕后,就可以从各个模块入手完成项目,这里从最简单的关注模块开始。 关注页面的搭建 登录界面的搭建 方法抽取与知识点总结 一. 关注页面的搭建 关注页面我们这里只做未登录的
总结下 swift下的基础语法,里面涉及到:常量&变量、Swift中的数据类型、逻辑分支、循环、字符串相关、数组和字典、方法的书写调用等内容,考虑到阅读体验分多篇来展示,希望对大家学习swift有所帮助,同时也是对自己的一个总结。
主要实现通过runtime动态关联属性。 上码!!!! #import <UIKit/UIKit.h> typedef void(^ButtonBlock)(UIButton* btn); @interface UIButton (Block) /** * button 添加点击事件 * * @param block */ - (void)addAction:(ButtonBlock)block; /** * button 添加事件 * * @param block *
UIButton *button=[[UIButton buttonWithType:(UIButtonType);
创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图;
iPhone拥有很好的用户交互体验,这源于iOS系统对交互事件的高效处理和高优响应; App开发者处理用户交互非常便捷,这源于iOS系统和UIKit对用户操作做了封装和默认处理; 本文围绕iOS的事件传递和处理,探究其具体过程。
最近一个项目有获取手机短信跟邮箱验证码功能, 所以要加一个UIButton倒计时功能
2、初始化并默认一个选项,这里用了4个button,实际可以采用2个,因为写一半才发现后面的汉字也要设置成可点的,就懒得改了,直接改成button了
在category中的使用 @property添加属性 ,不会生成带下划线的成员变量,也不会有setter和getter方法实现,所以我们通过runtime关联对象的技术为已经存在的类添加“属性”,这样我们只是实现了setter和getter方法,依然不会有带下划线的成员变量
前几天逛Github,偶然看到一个Swift的项目 —— 30DaysOfSwift,作者一共用30个小项目,来熟悉Swift语言,而我正好也学习了一段时间的Swift语言,准备仿照这样的模式,来更加深入的了解UI部分
这是看到一篇文章后感觉很有意思于是就把自己的效果改了改实现了一下,文末有原文链接。
由于编码的时候大多数时候使用Xib,但是偶尔利用纯代码创建控件的时候,觉得很麻烦,很多属性需要设置,于是在Git上搜索一个开源库FuncControl 觉得还可以,如果您有好用一点的开源库也请分享一下!
领取专属 10元无门槛券
手把手带您无忧上云