
Objective-C
太阳骑士索拉尔
天青色等烟雨
展开
-
一个关于字符串的打印实验
文章目录第一部分题目与答案解析总结第二部分题目与答案总结附言第一部分题目与答案题目打印结果解析这里的TLog是自己定义的一个宏函数#define TLog(_var) ({ NSString *name = @#_var; NSLog(@"%@: %@ -> %p : %@", name, [_var class], _var, _var); })mutableStrin...原创 2019-12-04 21:18:28 · 523 阅读 · 0 评论 -
在尝试异步绘制前,我去了解了这些iOS渲染知识
文章目录前言FPSCPUGPU位图像素点如何出现在屏幕上渲染参与者we are A!R!G!B!合成透明与不透明Alpha,Hidden与Opaque区别合成区别对齐与不对齐离屏渲染(Offscreen Rendering)什么是离屏渲染(Offscreen Rendering)CRT显示器显示原理离屏渲染原理调试方式iOS绘制CALayer与UIView代码验证绘制细节绘制时机参考文章前言...原创 2019-11-06 19:51:07 · 1891 阅读 · 0 评论 -
关于xcode “too many arguments to function call expected 1 have 2”
xcode 编译报错too many arguments to function call expected 1 have 2 解决办法:1.首先检查是否是自己的编码错误引起的,eg.[PromptView showMessage:@"即将上传数据的大小为:%@",tipStr];showMessage:方法可以接受的参数为字符串,但是如上述所写,xcode 编译时就会报 too many ar...转载 2018-06-13 16:44:53 · 7159 阅读 · 0 评论 -
Xcode常见报错锦囊
此篇我将罗列出iOS开发中,Xcode编译器出现的常见错误,警告视同为错误处理。(序号只做排序用)1.死存储问题死存储这个问题上篇文章提到过,之所以重新罗列出来,是因为这个问题也挺常见的。导致这个问题的原因是,当我们对某个对象直接赋值之后,如果包含这个对象的方法立马就结束了,那么这个对象就会被自动释放,但是我们本身根本还没有用到它,所以就形成了一个死存储代码,这个赋值语句其实也是无效的。2.访问了...转载 2018-06-13 21:31:43 · 674 阅读 · 0 评论 -
iOS开发NSDate详解
1. 用于创建NSDate实例的类方法有+ (id)date; 返回当前时间 + (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs; 返回以当前时间为基准,然后过了secs秒的时间 + (id)dateWithTimeIntervalSinceReferenceDate:(NSTimeInterval)secs; 返回以2001/01/...转载 2018-06-13 23:15:59 · 511 阅读 · 0 评论 -
定时器 每一分钟调用一次 NSTimer-定时器的使用浅析
此帖转载别人的 贞娃儿 他的博客http://blog.sina.com.cn/s/blog_7b9d64af0101caaz.html1.在*.h 文件中定义一个定时器@property (nonatomic,strong) NSTimer *paintingTimer;2.在*.m中调用吧//定时器执行的方法-(void)paint:(NSTimer *)paramTimer{ NSLog...转载 2018-06-17 16:14:37 · 771 阅读 · 0 评论 -
关于Objective-C中的继承
基本格式首先准备两个类(一个父,一个子),要明白的是子类是父类中的一个特例,就好像刘德华与人类的关系,所以如果我们调用了子类就能使用父类的实例方法#import <Foundation/Foundation.h>@interface FKFruit : NSObject@property (nonatomic , assign) double weight;- ...原创 2018-06-10 20:55:10 · 290 阅读 · 0 评论 -
文标题:OC学习篇之---类的三大特性(封装,继承,多态)(理解多态的好处)
文标题:OC学习篇之---类的三大特性(封装,继承,多态)我们都知道,面向对象程序设计中的类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性:一、封装封装就是对类中的一些字段,方法进行保护,不被外界所访问到,有一种权限的控制功能,Java中有四种访问权限修饰符:1public,default,protected,private访问权限依次递减...转载 2018-06-10 21:02:59 · 331 阅读 · 0 评论 -
关于编程语言中的“1970年1月1日0点”
为什么编程语言以及数据库要从1970年1月1日开始计算时间今天在看Python API时,看到time模块:The epoch is the point where the time starts. On January 1st of that year, at 0 hours,the “time since the epoch” is zero. For Unix, the epoch is ...转载 2018-06-19 10:47:29 · 735 阅读 · 0 评论 -
iOS UI基础控件之UIButton
UIButton 是一个非常实用的控件,在我们以后的开发生涯中他是不可或缺的。下面我们一起来学习UIButton吧!!!UIButton 简介UIButton是一个可以相应事件的控件,因此他的直接父类是UIControl而不是UIView。总所周知所有能显示数据的都是UIView,所以我的按钮他也是一个UIView,只不过是通过UIControl继承而来的。基本属性对象的创建 UIButto...转载 2018-07-01 15:29:07 · 573 阅读 · 0 评论 -
UIView详解
UIView表示屏幕上的一块矩形区域,它在App中占有绝对重要的地位,因为IOS中几乎所有可视化控件都是UIView的子类。负责渲染区域的内容,并且响应该区域内发生的触摸事件UIView的功能 1.管理矩形区域里的内容2.处理矩形区域中的事件3.子视图的管理 4.还能实现动画 UIView的子类也具有这些功能下图就是视图的内层次 ...转载 2018-07-01 15:53:55 · 4796 阅读 · 0 评论 -
哈希表(散列表)原理详解
什么是哈希表? 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。记录的存储位置=f(关键字)这里的对应关系f称为散列函数,又称为哈希(Hash函数),采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间...转载 2018-06-26 18:48:55 · 180 阅读 · 0 评论 -
UIAlertController的常用方法,属性
示例代码#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void) createImageBtn{ //这是初始化 UIImageView* imageView = [[UIImageView alloc] initWith...原创 2018-07-23 16:41:10 · 292 阅读 · 0 评论 -
UINavigationBar的常用方法,属性
示例代码#import "AppDelegate.h"#import "VCRoot.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDic...原创 2018-07-23 23:28:49 · 666 阅读 · 0 评论 -
UITabBarController的常用方法,属性
示例代码#import "AppDelegate.h"#import "VCFirst.h"#import "VCSecond.h"#import "VCThird.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)applic...原创 2018-07-24 10:27:18 · 555 阅读 · 2 评论 -
如何同时加上导航(UINavigationController)与分栏(UITabBarController),并且不错位
示例代码- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. //创建window...原创 2018-07-24 23:56:46 · 454 阅读 · 0 评论 -
UILabel 全属性
UILable是iPhone界面最基本的控件,主要用来显示文本信息。 ·常用属性和方法有: 1、创建 CGRect rect = CGRectMake(100, 200, 50, 50); UILabel *label = [[UILabel alloc] initWithFrame:rect]; 2、text //设置和读取文本内容,默认为nil label.text = @”文本信息”; //...转载 2018-07-20 10:55:25 · 273 阅读 · 0 评论 -
网易云音乐简单仿写(仅账户与我的音乐的纯UI界面)
GitHub地址GitHub简述1. 从7.24到7.26上午完成,总计花费时间两天出头一点,为暑假留校的第一个小Demo,仅包括UI界面,主要难点为UITableView的自定义cell,同时使用导航栏与分栏等心得体会1. 在开始做之前没有把相应的知识学习到位,导致制作过程中出现了卡住的点2. 没有做之前构思好整体框架,导致经常半路出现要修改整个UITableView的情...原创 2018-07-26 11:22:43 · 1505 阅读 · 0 评论 -
UILabel的常用方法,属性
实例代码(仅包含ViewController.m)#import "ViewController.h"@interface ViewController ()@end@implementation ViewController//创建UI控件函数- (void) createUI{ //定义并且创建一个UILabel对象 //UILabel是可以显示在屏...原创 2018-07-21 00:13:11 · 340 阅读 · 0 评论 -
UIButton的常用方法,属性
实例代码(共两段,分别展示了属性与常用方法,这两段都只是ViewController.m)#import "ViewController.h"@interface ViewController ()@end@implementation ViewController//创建圆角按钮- (void) createUIRectButton{ //创建一个btn对象,根...原创 2018-07-21 00:13:36 · 421 阅读 · 0 评论 -
UIVIew的常用方法,属性
代码实例(包括层级关系,这两段都只是ViewController.m)//// ViewController.m// UIView//// Created by 姜凯文 on 2018/7/20.// Copyright © 2018年 姜凯文. All rights reserved.//#import "ViewController.h"@interface...原创 2018-07-21 00:14:01 · 254 阅读 · 0 评论 -
UIVIewController的常用方法,属性
代码实例 (同上)#import "ViewController.h"@interface ViewController ()@end@implementation ViewController//当视图控制器第一次被加载显示视图时,调用此函数//布局初始化视图来使用,初始化资源使用- (void)viewDidLoad { //调用父亲类的加载视图函数 ...原创 2018-07-21 00:14:30 · 447 阅读 · 0 评论 -
UITextField的常用方法,属性
示例代码#import <UIKit/UIKit.h>@interface ViewController : UIViewController<UITextFieldDelegate>{ //定义一个textField //文本输入区域 //例如,用户名,密码等需要输入文本文字的内容区域 //只能输入单行的文字,不能输入或显示多...原创 2018-07-21 12:05:46 · 361 阅读 · 0 评论 -
小白速来,你能找到最简单方便的UITableView自定义Cell的两种方法(看完包会)!
引言制作网易云音乐demo时遇到了自定义Cell这个难关,到处搜博客,简书,愣是没学会,感觉都是铁憨憨写的。最后还是组长传授一波代码,学会了到底应该怎么写,因此我写这一篇博客,一定要让最萌的萌新(像我一样的)学会自定义Cell。这篇不包括UITableView的操作,不知道的可以看这篇UITableView的常用方法,属性教学示例代码(方法一:不需要新建Cell文件)...原创 2018-07-26 17:14:22 · 1232 阅读 · 0 评论 -
UIScrollView的常用方法,属性
示例代码#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the ...原创 2018-07-21 17:24:05 · 226 阅读 · 0 评论 -
UITextView的常用方法,属性
示例代码// 初始化输入框并设置位置和大小 UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 100, [UIScreen mainScreen].bounds.size.width - 20, 180)]; // 设置预设文本 textView.text = @"您的意见...原创 2018-07-21 21:05:00 · 311 阅读 · 0 评论 -
UIImageView的常用方法,属性
示例代码#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void) createImageBtn{ //这是初始化 UIImageView* imageView = [[UIImageView alloc] initWith...原创 2018-07-21 23:48:41 · 480 阅读 · 0 评论 -
iOS如何跳转到一个有UINavigationController的界面(即一开始没有UINavigationController)
前言在一开始学习UINavigationController与UITabBarController的时候,我们使用的是修改AppDelegate.m文件,将self.window.rootViewController设为UITabBarController,将每个UINavigationController添加到UITabBarController管理数组中。 可在制作share项目时,多了...原创 2018-08-03 16:18:24 · 1615 阅读 · 0 评论 -
UITextField关于键盘视图上移与键盘收回
示例代码 //添加到- (void)viewDidLoad // 键盘出现 视图上移事件 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillAppear:) name:UIKeyboardWillShowNotification object:nil]; ...原创 2018-08-03 16:28:49 · 393 阅读 · 0 评论 -
关于UIButton如何点击后改变状态+圆角按钮组合拳
示例代码 button.titleLabel.textAlignment = NSTextAlignmentCenter; //一般圆角按钮文字肯定居中 button.layer.masksToBounds = YES; //设定这个才有圆角 button.layer.cornerRadius = 3; //设定弯曲度 [button setTi...原创 2018-08-03 16:52:00 · 359 阅读 · 0 评论 -
关于复用以及两种自定义Cell的方式
关于自定义cell的两种方式,我之前写过这篇博客,当时并不懂复用以及创建时一些代码的实际意思,导致之后我自己用的时候经常性的漏掉一句,现在我有点理解了,来写一下,也算对当时这篇博客的完善。 首先我们看不用创建文件的第一种自定义cell的方式 UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:@...原创 2018-08-03 19:37:43 · 569 阅读 · 0 评论 -
在UIScrollView上部署多个UITableView
前言我们经常遇到要在UIScrollView上部署多个UITableView的情况。因为现在的APP很多界面是可以滑动切换的代码实例// 核心思路非常简单,就是让UIScrollView的画布内购容纳下3个UITableView的大小,这样就可以在其中切换了 _scrollView.bounces = NO; _scrollView.alwaysBounceHo...原创 2018-08-03 20:07:09 · 615 阅读 · 0 评论 -
使用UISegmentedControl来控制UIScrollView的滚动(并实现UIScrollView的滑动也能改变UISegmentedContr
前言这篇博客可以结合这篇来看,我是在写同一个界面碰到的问题实例代码 //普普通通的_segmentedControl设置 NSArray *array = @[@"精选文章", @"精选文章", @"全部文章"]; _segmentedControl = [[UISegmentedControl alloc] initWithItems:array];..原创 2018-08-03 20:18:29 · 907 阅读 · 1 评论 -
UITextField实现给定词搜索,跳转页面
前言实现在UITextField中输入指定文字后能实现跳转到新界面实例代码 // 名字叫searchBar实际上是一个UITextFieldField self.searchBar = [[UITextField alloc]initWithFrame:CGRectMake(10, 0, 300, 30)]; self.searchBar.text=...原创 2018-08-03 20:43:40 · 320 阅读 · 2 评论 -
理解协议(protocol)与委托,以跨界面回调传值为例
简单介绍我现在对于协议的理解还比较粗浅,因为主要也就是用在跨界面传值方面,因此如果文章中有什么错误,让客官见笑了,还望能指出。首先,协议体现的就是规范和实现分离的哲学,在协议中规定的方法就相当于是一种规范,它要求遵守该协议的类一定要实现某一些方法,而不关心其具体的实现方法(这点很重要,把这个关系理清了,在看下面代码的地方就不会讲每块代码的位置搞混了)。而委托是什么?委托就是将定义协议的类...原创 2018-08-10 10:35:57 · 325 阅读 · 0 评论 -
用OC写成的简单命令行学生管理系统
GitHub地址命令行学生管理系统简述主要是为了写带UI的学生管理系统做的准备,提前了解下什么是封装,如何封装一个类因为是做的准备,其实写的很简陋,很多方法也实现不了,另外其实命令行和真正带UI的差别还是很大的,经常有意想不到的问题出现,比如在学生类里面将学生的成绩定为float类型,但实际要放在Label上还是得转换成字符串等等。。。收获还是有的,之前OC基础打得不是很牢,...原创 2018-08-10 10:59:50 · 548 阅读 · 0 评论 -
带UI界面的学生管理系统
GitHub地址学生管理系统简述从8.7日到8.9晚上大功告成完成算有效时间的话大概三天,为暑假留校制作的第三个Demo,有注册登录,对学生信息进行增删改查,只不过没有放入文件进行储存,数据一次性。总结: 这次和之前两个Demo完全不一样了,之前都是在仿写,这次从UI到内部数据处理都是又我自己来构思实现,还是很不一样的,给人强烈的满足感在做之前,先去做了一个命令行学生管理系...原创 2018-08-10 16:36:37 · 4605 阅读 · 5 评论 -
3g实验室2014年作品Share的UI层简单仿写
GitHub地址3g-share简述share说明: 关于share SHAER,于2014年12月开始研究设计。 为那些艺术院校师生等设计创意群体所建造的分享交流平台, 涉及艺术创作、广告创意、交互设计、影视动漫、时尚文化等诸多创意文化领域未来。 加入SHARE,好东西就要晒!从7.28日下午到8.3上午完成算有效时间的话大概五天半,为暑假留校制作的第二个Demo,...原创 2018-08-03 15:30:58 · 381 阅读 · 2 评论 -
push与present区别与使用
定义区别 pushViewController 导航控制器入栈的方式切换页面presentViewController 模态切换的方式切换页面返回方法 用 UINavigationController 的时候用 pushViewController:animated 返回之前的视图 [[self navigationController] popViewControllerAnima...原创 2018-08-03 15:49:12 · 1250 阅读 · 0 评论 -
仿iPhone天气预报
GitHub地址仿iPhone天气预报简述从8.13日到8.17上午大功告成完成算有效时间的话大概四天,为暑假留校制作的第四个Demo,实现搜索添加城市,管理城市,发送网络请求,JSON数据解析。总结: 这次又是很大一个飞跃,实现了一个能联网的APP,也算是确实有了实用价值吧。并且通过这次我也算是稍微理解了下前端与后台的关系。这次我觉得主要还是难在框架的搭建上,我现在已经养...原创 2018-08-18 10:09:56 · 1160 阅读 · 1 评论