<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Michael-小鱼儿]]></title><description><![CDATA[记录点滴，记录生活，我是一个iOS开发工作者]]></description><link>https://blog.youkuaiyun.com/mgd903845769</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mgd903845769]]></copyright><item><title><![CDATA[为iOS 项目手动配置 SnapKit (Pod 失败,考虑手动配置 Frameworks)]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/122928126</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/122928126</guid><author>mgd903845769</author><pubDate>Mon, 14 Feb 2022 17:40:03 +0800</pubDate><description><![CDATA[手动配置 第三方 Frameworks]]></description><category></category></item><item><title><![CDATA[The Podfile （Podfile 的写法和规范）]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/117286512</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/117286512</guid><author>mgd903845769</author><pubDate>Wed, 26 May 2021 13:13:26 +0800</pubDate><description><![CDATA[Podfile 的写法和规范

一个简单的 Podfile 事例，将 Alamofire 添加的单个项目中：


target 'MyApp' do
  use_frameworks!
  pod 'Alamofire', '~&gt; 3.0'
end


可在 Podfile 的文件的最上方添加依赖库的来源地址


source 'https://github.com/CocoaPods/Specs.git'                 // CocoaPods 的依赖库地址
source 'htt]]></description><category></category></item><item><title><![CDATA[Managing Your App‘s Life Cycle（管理应用程序的生命周期）]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/110009546</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/110009546</guid><author>mgd903845769</author><pubDate>Mon, 23 Nov 2020 23:51:32 +0800</pubDate><description><![CDATA[管理应用程序的生命周期
概览
When your app’s state changes, UIKit notifies you by calling methods of the appropriate delegate object:
（当您的应用程序状态发生变化是，UIKit会调用适当的委托对象的方法通知您。）

In iOS 13 and later, use UISceneDelegate objects to respond to life-cycle events in a scene-bas]]></description><category></category></item><item><title><![CDATA[AppDelegate(应用程序生命周期)]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/109997840</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/109997840</guid><author>mgd903845769</author><pubDate>Mon, 23 Nov 2020 15:32:46 +0800</pubDate><description><![CDATA[AppDelegate(应用程序生命周期)
pragma mark 在应用程序加载完毕之后调用
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    NSLog(@"应用程序启动");
    retur]]></description><category></category></item><item><title><![CDATA[Swift 拖拽可吸边悬浮按钮]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/109994556</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/109994556</guid><author>mgd903845769</author><pubDate>Mon, 23 Nov 2020 14:04:02 +0800</pubDate><description><![CDATA[Swift 拖拽可吸边悬浮按钮
闲来无事写个小Demo
上图

代码片
func addDragFloatBtn() {
        // 创建按钮
        let btn = UIButton(frame: CGRect(x: 10, y: 200, width: 80, height: 80))
        btn.backgroundColor = UIColor.orange
        btn.layer.cornerRadius = 20.0
        self.vie]]></description><category></category></item><item><title><![CDATA[Mac 创建 Flutter_web 项目]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/103059416</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/103059416</guid><author>mgd903845769</author><pubDate>Wed, 13 Nov 2019 23:31:13 +0800</pubDate><description><![CDATA[Mac 平台创建 Flutter_web 项目
Flutter_web 环境及 web_app demo 配置请参考：
Flutter Web 项目 创建 web_app 练习项目
Mac 平台上创建 Flutter_web 项目 web_app 和 Windows 平台大同小异，可以说是一样的。
坑以踩过，坑在了光按照上一片 Windows 平台上创建 web_app 步骤中忘记更新环境变量了，...]]></description><category></category></item><item><title><![CDATA[Flutter Web 项目 创建 web_app 练习项目]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/102955272</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/102955272</guid><author>mgd903845769</author><pubDate>Thu, 07 Nov 2019 15:43:00 +0800</pubDate><description><![CDATA[flutter_web 环境配置
下载 官网稳定版本 Flutter SDK ，配置环境变量
你可以去参考 环境搭建和环境变量配置
Flutter_for_web 环境搭建: https://blog.youkuaiyun.com/qq_35905501/article/details/90021762
运行官网 helloworld 你可以参考
运行官方hello_world示例代码
以下创建flutter...]]></description><category></category></item><item><title><![CDATA[react-create-app 构建react项目]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/101693250</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/101693250</guid><author>mgd903845769</author><pubDate>Sun, 29 Sep 2019 15:14:59 +0800</pubDate><description><![CDATA[安装及初始目录

下载 Node.js
安装 Create React App：
npm i create-react-app -g
开启新项目：
create-react-app myapp
cd myapp
npm start
打包项目：npm build

参考 ：https://www.cnblogs.com/zhangycun/p/10769789.html

...]]></description><category></category></item><item><title><![CDATA[ReactJS 选项卡切换 （react-swipeable-views）]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/101687122</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/101687122</guid><author>mgd903845769</author><pubDate>Sun, 29 Sep 2019 14:15:15 +0800</pubDate><description><![CDATA[ReactJS 选项卡切换实现
应用组件 react-swipeable-views
react-swipeable-views : Doc

A React component for swipeable views. ❄️ https://react-swipeable-views.com/

Installation
Install react-swipeable-views.
npm
np...]]></description><category></category></item><item><title><![CDATA[React使用锚点滚动到头部]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/100737511</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/100737511</guid><author>mgd903845769</author><pubDate>Wed, 11 Sep 2019 15:21:36 +0800</pubDate><description><![CDATA[React使用锚点滚动到头部
&lt;a onClick={() =&gt; this.scrollToAnchor(name)}&gt;&lt;/a&gt;    //定义锚点

&lt;div id='activity1'&gt;&lt;/div&gt;   //跳转到的锚点
//函数定义
scrollToAnchor = (anchorName) =&gt; {
    if (anchor...]]></description><category></category></item><item><title><![CDATA[日语五十音 第一课 上]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/80988729</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/80988729</guid><author>mgd903845769</author><pubDate>Tue, 10 Jul 2018 17:00:54 +0800</pubDate><description><![CDATA[日文五十音图表




  \
  a
  i
  u
  i
  o



  a
  あーアーa
  いーイーi
  うーウーu
  えーエーe
  おーオーo


  k
  かーカーka
  きーキーki
  くークーku
  けーケーke
  こーコーko


  s
  さーサーsa
  しーシーshi
  すースーsu
  せーセーse
  そーソーso


  t
  たーターta...]]></description><category></category></item><item><title><![CDATA[对友盟分享（Umeng-Share）的功能封装]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/79970610</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/79970610</guid><author>mgd903845769</author><pubDate>Tue, 17 Apr 2018 10:05:14 +0800</pubDate><description><![CDATA[对友盟分享（Umeng-Share）的功能封装





引言

本文档针对友盟分享（6.9.0）进行了功能封装，完成的对于 文字、图片、网页 分享功能封装，如有其它封装要求请根据本文档的封装思路和友盟分享 api再进行功能封装。 
☺️话不多言，看看代码吧。

封装主要完成几部


Cocoapods 集成友盟分享 SDK
配置SSO白名单
配置URL Scheme
AppDelegate+UM...]]></description><category></category></item><item><title><![CDATA[让你快速上手一个项目]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/79727449</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/79727449</guid><author>mgd903845769</author><pubDate>Wed, 28 Mar 2018 14:44:09 +0800</pubDate><description><![CDATA[

前言: 
对于一个大项目而言，最烦恼的就是在众多界面难以找到对应的viewController,要改个东西都要花好长的时间去找对应的类。

特别是当你接手一个大项目的时候，对整体的业务逻辑不熟悉，整体的架构体系不熟悉，让你修复某个页面的BUG，估计你找这个页面所对应的viewController都要找好久。

思考 
能否有一种方式可以快速让你上手一个大项目？快速找到某个页面所对应的viewC...]]></description><category></category></item><item><title><![CDATA[APP 之间跳转实现]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/79709526</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/79709526</guid><author>mgd903845769</author><pubDate>Tue, 27 Mar 2018 10:43:29 +0800</pubDate><description><![CDATA[在谈App内部的路由之前，先来谈谈在iOS系统间，不同App之间是怎么实现跳转的。

1. URL Scheme方式

iOS系统是默认支持URL Scheme的，具体见官方文档。

比如说，在iPhone的Safari浏览器上面输入如下的命令，会自动打开一些App：



// 打开邮箱 
 mailto:// 
// 给110拨打电话 
 tel://110

在iOS 9 之前只要在App的...]]></description><category></category></item><item><title><![CDATA[Mac 下 Chrome 浏览器 快捷键]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/79384531</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/79384531</guid><author>mgd903845769</author><pubDate>Tue, 27 Feb 2018 10:20:30 +0800</pubDate><description><![CDATA[一直习惯于用Chrome浏览器，但Win下的和Mac下的快捷键不一样，整理一下Mac下的Chrome浏览器快捷键以便备用，吐槽下明明想选择地址栏总是加入收藏栏，win下是D，Mac下是L，历史分别是H和Y，有点儿分裂的感觉…

1. 标签页和窗口快捷键



⌘-N
打开新窗口。


⌘-T
打开新标签页。


⌘-Shift-N
在隐身模式下打开新窗口。


按 ⌘-O，然后选择文件。
在 Ch...]]></description><category></category></item><item><title><![CDATA[iOS MVC架构介绍]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/79383983</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/79383983</guid><author>mgd903845769</author><pubDate>Tue, 27 Feb 2018 09:44:09 +0800</pubDate><description><![CDATA[iOS MVC架构介绍

MVC全名是Model View Controller，是模型(model)－视图(view)－控制器(controller)的缩写。 
MVC是一个框架模式，它强制性的使应用程序的输入、处理和输出分开。



基本概念：


视图(View)：构建UI的类；例如：按钮，标签，进度条等。
模型(Model)：视图类所需要的数据；例如：表格需要显示的文字。
控制器(Cont...]]></description><category></category></item><item><title><![CDATA[讲一下MVC和MVVM，MVP？]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/79383970</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/79383970</guid><author>mgd903845769</author><pubDate>Tue, 27 Feb 2018 09:43:18 +0800</pubDate><description><![CDATA[MVC全名是Model View Controller，是模型(model)－视图(view)－控制器(controller)的缩写,Model 呈现数据，View 呈现用户界面，而 View Controller 调节它两者之间的交互。


视图(View)：构建UI的类；例如：按钮，标签，进度条等。
模型(Model)：视图类所需要的数据；例如：表格需要显示的文字。
控制器(Controlle...]]></description><category></category></item><item><title><![CDATA[CALayer mask属性实现蒙板效果]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/79383943</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/79383943</guid><author>mgd903845769</author><pubDate>Tue, 27 Feb 2018 09:41:49 +0800</pubDate><description><![CDATA[相信很多人在ios上实现控件圆角的时候都用过：cornerRadius这个属性，例如实现圆形头像，一般我会这么写：

self.headImageView.layer.masksToBounds = YES; 
self.headImageView.layer.cornerRadius = 20;

这样就能简单的实现图片圆角效果了，那么，实现圆角效果的原理是什么呢？下面我简单的谈一下我自己的理解...]]></description><category></category></item><item><title><![CDATA[书写一个完整的单例]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/79383918</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/79383918</guid><author>mgd903845769</author><pubDate>Tue, 27 Feb 2018 09:39:31 +0800</pubDate><description><![CDATA[前言

什么是单例？

一个类只允许有一个实例,在整个程序中需要多次使用,共享同一份资源的时候,就可以创建单例,一般封装成工具类使用,苹果封装成单例常用的有 UIApplication,NSUserDefaults,NSNotificationCenter,NSFIleManager等等。



单例的实现

我以前的写法 (不严谨的写法)



// Singleton.h

@interfac...]]></description><category></category></item><item><title><![CDATA[欢迎使用优快云-markdown编辑器(参考)]]></title><link>https://blog.youkuaiyun.com/mgd903845769/article/details/79383837</link><guid>https://blog.youkuaiyun.com/mgd903845769/article/details/79383837</guid><author>mgd903845769</author><pubDate>Tue, 27 Feb 2018 09:37:14 +0800</pubDate><description><![CDATA[欢迎使用Markdown编辑器写博客

本Markdown编辑器使用StackEdit修改而来，用它写博客，将会带来全新的体验哦：


Markdown和扩展Markdown简洁的语法
代码块高亮
图片链接和图片上传
LaTex数学公式
UML序列图和流程图
离线写博客
导入导出Markdown文件
丰富的快捷键






快捷键


加粗    Ctrl + B 
斜体    Ctrl + I...]]></description><category></category></item></channel></rss>