自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 问答 (6)
  • 收藏
  • 关注

原创 SwiftUI 小组件 Widget(三)

前面两篇小组件的创建SwiftUI 小组件 Widget(一)小组件的尺寸介绍SwiftUI 小组件 Widget(二)这篇来讲一下小组件的时间线,也就是刷新小组件的时间。我们在用一些比较成熟的小组件软件的时候,会发现有些小组件无时无刻都在动,例如带秒针指针的时钟,一些动画小组件等。那些是不是每帧,或者每秒都刷新小组件呢?答案是否定的,甚至连每分钟刷新都做不到(提一下,这些能一直动的大部分是动画,而不是刷新实现的)。

2023-12-27 18:02:18 931

原创 SwiftUI 小组件 Widget(二)

紧接上一篇小组件的创建SwiftUI 小组件 Widget(一)这篇来讲一下小组件的尺寸小组件最开始支持小、中、大三个尺寸,分别是到iOS 15新增了超大号,用于iPad端的再到iOS 16新增了锁屏小组件分别是机型se1141 * 141292 * 141292 * 311148 * 148321 * 148321 * 324155 * 155329 * 155329 * 345158 * 158338 * 158338 * 354159 * 159。

2023-12-26 18:46:25 1084 1

原创 SwiftUI 小组件 Widget(一)

小组件创建

2023-12-26 14:23:18 991

原创 iOS端播放VR图片

上一篇文章说了播放视频,本篇文章将继续记录我的VR的开发之旅。这一次是播放图片,播放图片与播放视频类似,只不过用到的API不同。 一样需要导入CardboardSDK,然而不同的在ViewController导入 #import “GCSPanoramaView.h”, 然后遵循GCSWidgetViewDelegate代理。 初始化:_panoView = [[GCSPanoramaView

2016-05-06 12:33:07 1599 1

原创 iOS端VR视频播放

这是我来到深圳工作的第一个星期,公司是做VR软件开发的。以前没怎么接触过,我这边主要的工作是用iOS端开发VR视频播放的一个开发工作。所以第一个星期需要自学这方面知识,下面是我看了谷歌的一个VR在iOS端开发的文档写的一个demo。第一步是需要用cocoaPods导入谷歌开发的一个第三方:CardboardSDK,怎么导入就不多说了,这里需要注意的一点是谷歌方面的第三方导入需要翻墙,一般的翻墙软件是

2016-05-04 18:23:38 1007 1

原创 多线程

先说一下什么叫做线程 一个运行着的程序就是一个进程,一个进程至少包括一个线程,线程就是程序的执行流。Mac和iOS中的程序启动,创建好一个进程的同时,一个线程便开始运作,这个线程叫做主线程。主线程在程序中的地位和其他线程不同,它是其他线程的父线程,且所有界面的显示操作即AppKit或UIKit的操作必须在主线程进行。 系统中的每一个进程都有自己独立的虚拟内存空间,而同一个进程中的多个线程则共用进

2016-03-28 15:13:09 340

原创 数据持久化

IOS文件系统 1.IOS文件系统遵循一个沙盒机制,IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件等。 1>每个应用程序都在自己的沙盒内 2>不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容

2016-03-23 21:12:21 464

原创 MVC模式、MVVM模式

MVC是一种架构模式,M表示model,V表示视图View,C表示控制器Controller Model负责储存、定义、操作数据 View用于展示界面,与用户进行操作交互 Controller是Model和View之间的桥梁,将Model中的数据传递到View。 关系解读:Controller可以直接跟Model或者View进行通信,而View不能跟Model进行直接通信 3者关系如下图展

2016-03-23 18:10:47 865 1

原创 代理传值(回调传值)

代理传值(回调传值)1.代理又叫委托,是一种设计模式,代理是对象与对象之间的通信交互,代理解除了对象之间的耦合性。 2.改变或传递控制链。允许一个类在某些特定时间通知到其他类 3.代理的属性常用assign的原因是:防止循环引用,导致对象无法正确释放 代理是一种回调机制,是一对一得关系,通知是一对多,代理效率比通知高。代理传值使用如下一、在输入值的类的.h文件中声明一个到代理,

2016-03-23 17:56:01 438

原创 TabBarController的使用

TabBarController的使用凡是加入的标签控制器的视图控制器都有tabBarItem和tabBarController两个属性 什么时候使用系统自带的tabBarController中的TabBar?1.项目没有什么特别需求 2.美工能够给到30*30的镂空图片 如何使用系统自带的tabBarController?1.点击StoryBoard,拖一个UITabB

2016-02-17 21:54:18 374

原创 UITableView的编辑

UITableView的编辑拉ib并关联//注册 [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:CellIdentifier]; //系统自带// self.navigationItem.rightBarButtonItem = self.editButtonItem;

2016-02-17 21:47:20 228

原创 文字的发音

AVSpeechSynthesizer *reader = [[AVSpeechSynthesizeralloc]init];                AVSpeechUtterance *utterance = [AVSpeechUtterancespeechUtteranceWithString:self.wenZiLabel.text];        AVSpee

2016-02-15 20:20:03 253

原创 tableView以及cell的使用

//将tableview的原点归到(0,0);    if ([[[UIDevicecurrentDevice] systemVersion]floatValue] >= 7.0 ?YES : NO) {        self.edgesForExtendedLayout =UIRectEdgeNone;    }    //设置tableview的位置   

2016-02-15 20:18:46 299

原创 新浪微博之微博分享

分享,可以说是每个app都具备的功能之一。现在我们说的是新浪微博的分享。首先我们需要下载新浪微博相关的sdk并导入工程,并且按照官方文档的使用说明进行配置下面是分享的具体代码UIAlertAction *sina = [UIAlertActionactionWithTitle:@"新浪微博"style:UIAlertActionStyleDefault

2016-02-15 20:16:12 260

原创 ios之3D动画(一):基础3D动画

3D动画(一):基础3D动画CG的前缀告诉我们,CGAffineTransform类型属于Core Graphics框架,CoreGraphics实际上是一个严格意义上的2D绘图API,并且CGAffineTransform仅仅对2D变换有效。和CGAffineTransform类似,CATransform3D也是一个矩阵,但是和2x3的矩阵不同,CATransform3D是一个可以在

2015-12-27 22:10:33 554

原创 ios之核心动画(二)

核心动画(二)现在我们讲CAPropertyAnimation的另外一个子类——CAKeyframeAnimation CAPropertyAnimation和CABasicAnimation的区别:CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSArray保存这些数值.

2015-12-27 22:09:00 282

原创 ios之核心动画(一)

核心动画(一)之前我们已经说过基础动画编程,现在开始进入更强大的核心动画编程。首先先说Core Animation。 Core Animation是一组非常强大的动画处理API,它能做出非常绚丽的动画效果,在使用它时需要添加QuartzCore.framework和引入对应的框架 CAAnimation它是所有动画对象的父类,负责控制动画的持续时间和速度,是抽象类,

2015-12-27 22:04:31 245

原创 ios基础动画

基础动画基础动画是iOS的UI设计中最基础的动画,实现代码很简单,但是在实际开发中很少用,一般开发者实现动画使用核心动画编程。那为什么还要学基础动画编程呢?因为核心动画编程是基于基础动画编程的。所以当基础动画掌握了,那核心动画也就不会那么难了。首先我们先说一下传统的基础动画编程模式——首尾式     //执行动画,这里为首尾式的首    [UIView beginAnima

2015-12-27 22:01:33 261

原创 本地通知

本地通知:本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时、待办事项提醒,又或者一个应用在一段时候后不使用通常会提示用户使用此应用等都是本地通知由于在iOS8之后,本地通知的写法有所改变,所以在此之前需要进行版本判断,如下:- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWi

2015-12-27 21:51:54 226

原创 系统通知

标签:ios系统消息通知一、键盘1、UIKeyboardWillShowNotification-将要弹出键盘2、UIKeyboardDidShowNotification-显示键盘3、UIKeyboardWillHideNotification-将要隐藏键盘4、UIKeyboardDidHideNotification-键盘已经隐藏5、UIKeyboardWillCh

2015-12-22 23:12:21 659

原创 代理传值(回调传值)

一、在输入值的类的.h文件中声明一个到代理,并声明一个代理方法;#import //声明一个AViewControllerDelegate 协议@protocol AViewControllerDelegateNSObject>//@optional 为可选方法,如果不写则默认为必写方法@optional//声明代理方法-(void)transValue:

2015-12-22 23:06:23 287

原创 视图控制器的出栈,入栈(页面切换)

1、导航控制器初始化的时候一般都有一个根视图控制器,导航控制器相当于一个栈,里面装的是视图控制器2、我们要在栈中新增或者删除一个视图控制器,就需要得到导航控制器,一般在栈中得所有视图控制器都有一个self.navigationController,意思是我的导航控制器,也就是这个视图控制器所在的导航控制器,这样就拿到了导航控制器。3、栈中新增视图控制器用pushViewController

2015-12-22 22:59:11 850

原创 单例模式(页面间传值)

单例模式(页面间传值) 单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。1.单例模式的要点:显然单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。2.单例模式的优点:1.实例控制:Singleton会阻止其他对象实例

2015-12-22 22:51:35 807

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除