<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[知更鸟CoolLee的博客]]></title><description><![CDATA[在知识的海洋，飘荡。。]]></description><link>https://blog.youkuaiyun.com/studying_ios</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; studying_ios]]></copyright><item><title><![CDATA[Flutter中如何获取widget的大小和位置？]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/108870555</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/108870555</guid><author>studying_ios</author><pubDate>Wed, 30 Sep 2020 10:42:22 +0800</pubDate><description><![CDATA[在我们实际的开发中，会有要获取某个widget的大小和位置的需求，但是widget本身并没有对应的属性获取size和position，怎么办呢？看官莫急，且往下看。
我们首先创建一个demo工程，长的是这个样子，column中分别有三个不同颜色的widget，底部两个按钮，点击分别获取size和position：

代码很简单：
	//获取widget大小
    _getSize() {
    }

    //获取widget位置
    _getPosition() {
    }

    ret]]></description><category></category></item><item><title><![CDATA[使用NSProxy和NSObject设计代理类的差异]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/107590658</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/107590658</guid><author>studying_ios</author><pubDate>Sun, 26 Jul 2020 11:17:08 +0800</pubDate><description><![CDATA[经常发现在一些需要使用消息转发而创建代理类时, 不同的程序员都有着不同的使用方法, 有些采用继承于NSObject, 而有一些采用继承自NSProxy. 二者都是Foundation框架中的基类 , 并且都遵守了这个协议, 从命名和文档中看NSProxy天生就是用来干这个事情的. 但即便如此, 它们却都定义了相同的消息转发的接口, 那我们在使用二者来完成这个工作时有什么差异呢.
先贴一下通过二者来创建代理类的最基本实现代码.
继承自NSProxy
@interface THProxyA : NSProxy
]]></description><category></category></item><item><title><![CDATA[Xcode编译报 library not found for -lstdc++ 问题]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/107529930</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/107529930</guid><author>studying_ios</author><pubDate>Thu, 23 Jul 2020 10:29:53 +0800</pubDate><description><![CDATA[背景：最近在编译某第三方提供的SDK的时候，发现编译过不了，报错信息如下：

提示library not found for -lstdc++，开始以为没有导入对应的库，可是添加的时候，根本搜不到这个library，一番度娘谷哥，发现libstdc++已经在xcode10被移除掉了，这怎么办，项目要编译，xcode也是11版本，难道没救了吗？
功夫不负有心人，最终在这里，找到了解决办法，简单来说就是，虽然xcode移除了这个库，但是我们还可以再手动添加回来，当然除了自己找对应的库文件添加之外，作者把对应的库]]></description><category></category></item><item><title><![CDATA[Flutter彻底去除水波纹效果，不来看看？]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/107342953</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/107342953</guid><author>studying_ios</author><pubDate>Wed, 15 Jul 2020 22:36:52 +0800</pubDate><description><![CDATA[如何彻底去除Flutter的水波纹效果？跟着我深入flutter源码去找到蛛丝马迹，完成最后的改造！]]></description><category></category></item><item><title><![CDATA[Flutter如何设置文字大小不随系统设置而改变？]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/106199143</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/106199143</guid><author>studying_ios</author><pubDate>Mon, 18 May 2020 19:05:19 +0800</pubDate><description><![CDATA[我们知道，在原生iOS开发中，一旦文字设置了font之后，是不会随着系统设置中的字体大小的改变而发生改变的。可是，在flutter开发中，我们使用的Text widget却会随着改变，这就会导致布局错乱，使得整个页面异常难看。
首先，如果是针对单独的Text widget，系统提供了textScaleFactor属性，用于设置文字的缩放倍率
Text(
   '(model.reason)',
   textScaleFactor: 1.0,
   maxLines: 1,
   overflow: Tex]]></description><category></category></item><item><title><![CDATA[Building for iOS Simulator, but the linked and embedded framework 'App.frame']]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/105947336</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/105947336</guid><author>studying_ios</author><pubDate>Wed, 06 May 2020 20:28:07 +0800</pubDate><description><![CDATA[在使用android studio运行flutter项目时，报如下错误：

building for is simulator but the linked and embedded framework ‘app.framework’ was built for ios

这是什么问题呢？其实是项目中已经存在的App.framework和当前编译的模式不一致。解决的办法很简单：
删除 ios/Fl...]]></description><category></category></item><item><title><![CDATA[iOS解除Block循环引用，你只知道__weak就out啦]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/105353898</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/105353898</guid><author>studying_ios</author><pubDate>Mon, 06 Apr 2020 23:52:08 +0800</pubDate><description><![CDATA[在iOS的开发中，block是比较频繁的一个使用的功能。可是我们都知道，block如果使用不当，很容易引起循环引用，造成内存泄漏。今天为大家介绍几种解除block循环引用的方式，愉快的用起来吧！
Answer 1 ：最常规的方式 – weak &amp; strong dance！
我相信作为一个有一定开发经验的人都知道，想要防止循环引用，最关键的就是要打破引用链，即让两个相互强引用的对象，让其中...]]></description><category></category></item><item><title><![CDATA[SwiftUI为啥可以这样写代码？]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/104833278</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/104833278</guid><author>studying_ios</author><pubDate>Fri, 13 Mar 2020 08:37:19 +0800</pubDate><description><![CDATA[欢迎老铁们扫码关注哦！
var body: some View {
    HStack(alignment: .leading, spacing: 10) {
        Text("Hello Swift")
        Text("Hello SwiftUI")
        Text("Hello SwiftUI Study")
    }
}

不知道大家有没有问过自己，为啥...]]></description><category></category></item><item><title><![CDATA[SwiftUI如何修改页面状态？@state的使用]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/103294890</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/103294890</guid><author>studying_ios</author><pubDate>Thu, 28 Nov 2019 15:52:42 +0800</pubDate><description><![CDATA[在SwiftUI开发中流传一种说法：视图是状态的函数。这句话什么意思呢？
我们在玩游戏的时候，死了几次，得到几分，收集了一些道具，或者捡到武器，在应用程序中，我们把这些称为state。当你退出游戏的时候状态都会保存，当你下次再进来游戏的时候可以接着上次的继续玩。不过在你玩的过程中，这些所有的东西都可以叫状态：所有的integers，strings，booleans等等，这些存储在内存中的值描述着你...]]></description><category></category></item><item><title><![CDATA[SwiftUI系列之七--NavigationView, TabbedView, Group介绍]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/102793421</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/102793421</guid><author>studying_ios</author><pubDate>Tue, 29 Oct 2019 10:04:36 +0800</pubDate><description><![CDATA[SwiftUI的设计就是开箱即用，这就意味着我们可以根据需要，将任意View放置到另一个View中。这一点对于我们常常使用的一些Container View是非常有用的，比如导航栏和底部tab栏。我们可以把任何一个View扔进Container中，SwiftUI会自动适应View的布局。本篇主要介绍这几种Container View：
NavigationView, TabbedView, Gr...]]></description><category></category></item><item><title><![CDATA[我到底应该学SwiftUI？UIKit？还是both？]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/102732171</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/102732171</guid><author>studying_ios</author><pubDate>Thu, 24 Oct 2019 21:12:41 +0800</pubDate><description><![CDATA[最近有些朋友问我，我学Swift到底应该学SwiftUI还是UIKit也要学？哈哈，你是不是也在期待着这样的回答：all in SwiftUI吧，UIKit的内容不用管了！然鹅，如果你听了这话，那目前阶段甚至一两年内你都可能只是写一写玩玩的项目了。各位看官，且听我细说为啥不能all in SwiftUI吧。
在解释之前，我需要说明一点：SwiftUI毫无疑问是一个很优秀的用户界面框架，而且100...]]></description><category></category></item><item><title><![CDATA[SwiftUI--List View全攻略]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/102701775</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/102701775</guid><author>studying_ios</author><pubDate>Wed, 23 Oct 2019 15:20:14 +0800</pubDate><description><![CDATA[SwiftUI的List View和UIKit中的UITableView很相似，它可以根据你的需求加载静态或者动态数据。不同的是，List使用起来更加的简单:我们不需要在storyboard或者Xib中创建cell，也不需要使用代码注册cell，不需要告诉它要有多少行内容，当然也不需要dequeue cell以及手动设置cell等等。
一、创建一个静态数据列表
想要创建一个静态数据列表，你首先需...]]></description><category></category></item><item><title><![CDATA[SwiftUI系列之一--不要怕，搞起来]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/102600243</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/102600243</guid><author>studying_ios</author><pubDate>Thu, 17 Oct 2019 10:17:53 +0800</pubDate><description><![CDATA[苹果公司在WWDC19上宣布了一个激动人心的消息，引入了SwiftUI–一个原生的声明式UI框架。这对于iOS开发习惯了命令式UI编写的猿们来说，是又兴奋又紧张，终于iOSer也可以赶上潮流，使用声明式的方式开发iOS、macos啦。当然小编是属于兴奋的那一种，这不迫不及待就来尝试SwiftUI开发了，接下来的一系列文章，会带领大家一起学习使用SwiftUI，大家加油！
我们只需要声明想在UI中...]]></description><category></category></item><item><title><![CDATA[iOS强迫症的福音--优雅的删除项目中无用的图片资源]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/99673272</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/99673272</guid><author>studying_ios</author><pubDate>Fri, 16 Aug 2019 11:57:06 +0800</pubDate><description><![CDATA[随着产品的更迭，工程中的图片资源也在不断的更新换代。那么你是不是曾今为项目中的无用图片过多而脑阔疼？为一个个查找，删除这些图片而奔溃？你是不是有仰天长啸：神啊，告诉我如何优（yi）雅（jian）的删除项目中无用的资源吧？
现在就让我来告诉你–FengNiao–一个删除Xcode工程中无用图片资源的神器！
啥是fengniao
FengNiao一个命令行工具，由iOS界的大神onevcat喵神使用...]]></description><category></category></item><item><title><![CDATA[iOS和Flutter混编系列二：混编后如何restart/reload&调试Flutter代码]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/98882671</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/98882671</guid><author>studying_ios</author><pubDate>Thu, 08 Aug 2019 19:20:07 +0800</pubDate><description><![CDATA[开篇：
上一篇为大家介绍了如何将flutter工程嵌入到iOS原生工程中
iOS和Flutter混编系列一：如何在已有的iOS工程中添加Flutter工程
本次分享的内容是：混编后如何针对flutter部分的代码进行restart/reload 操作以及调试代码。flutter支持热重载，我们如果进行过纯flutter开发，就知道flutter的restart/reload 是非常方便的。

re...]]></description><category></category></item><item><title><![CDATA[iOS和Flutter混编系列一：如何在已有的iOS工程中添加Flutter工程]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/98872913</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/98872913</guid><author>studying_ios</author><pubDate>Thu, 08 Aug 2019 18:15:03 +0800</pubDate><description><![CDATA[开篇：
flutter是什么就不多做介绍了，目前使用纯flutter进行开发的大型项目还比较少，多数试水的还是打算和现有的原生代码进行混编，即将flutter页面嵌入到原生app中。而网上大部分都是讲安卓和flutter混编的经验，有iOS和flutter混编的也是比较老的方法，现在已经不再适用，这两天尝试了一下最新的方式，记录一下，希望大家少走弯路。
正题：

以下内容都是按照官方给出的方案进行...]]></description><category></category></item><item><title><![CDATA[Lottie动画使用及原理分析]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/90898282</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/90898282</guid><author>studying_ios</author><pubDate>Wed, 05 Jun 2019 10:36:48 +0800</pubDate><description><![CDATA[目录结构：
1.Lottie是什么？

2.为什么使用Lottie？

3.Lottie适用于哪些场景？

4.Lottie的使用和原理


1.Lottie是什么？
Lottie是Airbnb开源的一个动画渲染库，支持多平台，包括iOS、Android、React Native以及Flutter（https://github.com/airbnb/lottie-ios）。除了官方支持的平台，更...]]></description><category></category></item><item><title><![CDATA[iOS底层原理探究之----KVC]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/86474100</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/86474100</guid><author>studying_ios</author><pubDate>Mon, 14 Jan 2019 18:18:57 +0800</pubDate><description><![CDATA[不管是平常开发还是找工作面试中，KVC、KVO的原理都是面试官比较喜欢问的问题。最近抽时间研究了一下KVC和KVO的实现原理，本想着一篇文章就可以说完，等研究完才发现不看不知道，一看吓一跳。KVC和KVO都有很多内容可以研究，故分为两篇分享，第一篇分享KVC的底层原理。
本次分享准备从这几个方面

...]]></description><category></category></item><item><title><![CDATA[iOS开发之为线程加把锁]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/86088686</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/86088686</guid><author>studying_ios</author><pubDate>Wed, 09 Jan 2019 16:20:22 +0800</pubDate><description><![CDATA[在iOS开发中，不可避免的需要使用到多线程。但是使用多线程的过程中，如果使用不当，就会造成数据混乱，那要怎么保证多线程使用中不会因为访问同一个内存空间而造成数据混乱呢？这个时候锁（LOCK）就该闪亮登场了。本文会从以下几个方面介绍锁，希望对大家有帮助：
1）锁是什么以及为什么需要？
2）iOS中都有哪些锁？
3）锁的使用？
- 锁是什么以及为什么需要？

锁是一种保证多线程并发执行安全的方式，避免...]]></description><category></category></item><item><title><![CDATA[iOS创建一个底部sheet（类似iPhone地图）]]></title><link>https://blog.youkuaiyun.com/studying_ios/article/details/81909079</link><guid>https://blog.youkuaiyun.com/studying_ios/article/details/81909079</guid><author>studying_ios</author><pubDate>Tue, 21 Aug 2018 15:54:30 +0800</pubDate><description><![CDATA[（本文是自己的翻译，感兴趣的可以查看原文，原文链接：https://skagedal.github.io/2018/08/03/bottom-sheet.html）

BottomDrawer或者叫BottomSheet作为一种用户交互模式已经在iOS使用的越来越频繁，经常出现在苹果自己的APP中，比如Apple Music和Maps。但是尽管如此，却一直没有一个标准组件可以让开发者直接使用。在这...]]></description><category></category></item></channel></rss>