<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mscinsidious的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mscinsidious</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mscinsidious]]></copyright><item><title><![CDATA[利用runtime为封装MJRefresh的分类添加分页页码属性]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/98207275</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/98207275</guid><author>mscinsidious</author><pubDate>Fri, 02 Aug 2019 16:09:05 +0800</pubDate><description><![CDATA[需求：

对MJRrefresh进行一层基础封装，实现多种方法并可在全局调用。在MJRrefresh加载数据完成后返回分页页码

方法：

为UIScrollView添加基于MJRefresh的分类(Category)。由于Category中使用@property并不能在分类中正确创建实例变量和存取方法。

在Runtime中，objc_class结构体大小是固定的，不可能往这个结构体中添加数...]]></description><category></category></item><item><title><![CDATA[MJRefresh上拉分页时提前加载（保证视频播放列表在划动分页时顺畅播放）]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/97937654</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/97937654</guid><author>mscinsidious</author><pubDate>Wed, 31 Jul 2019 18:00:41 +0800</pubDate><description><![CDATA[如上图，视频播放列表有20个条目，当从第20条时继续上拉时，直到上拉完成才进行下一页的数据加载，产生了上图的跳动，极为影响用户体验。

解决方式：

翻看源码头文件，找到如下图所示属性



在刷新方法的代码中为该属性设置一个偏移值，当上拉达到偏移值时，便开始加载数据


- (void)addFooterPreloadWithAutomaticallyRefresh:(BOOL)automa...]]></description><category></category></item><item><title><![CDATA[UISlider滑块大小与高度的自定义]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/97928884</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/97928884</guid><author>mscinsidious</author><pubDate>Wed, 31 Jul 2019 16:43:54 +0800</pubDate><description><![CDATA[需求：

需要自定义UISlider的高度及滑块大小（UISlider滑动条的高度及滑块大小系统默认给我们设定了，没有办法进行改变。）

方法：

滑块大小可以通过设置滑块图片，图片大小为滑块需要大小实现；滑块高度需要写一个UISlider的子类，重写系统方法

代码：

下面代码在自定义Slider中将高度固定死，若要复用可通过增加高度属性完成

OC版本:


// MXSlider.h
#i...]]></description><category></category></item><item><title><![CDATA[iOS - 获取UIImage所在的系统路径]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/97374335</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/97374335</guid><author>mscinsidious</author><pubDate>Fri, 26 Jul 2019 11:11:25 +0800</pubDate><description><![CDATA[需求1:从相册选择图片要获取图片的路径

代码：

如果我们得到PHAsset的对象(itemModel.asset)，我们可以通过PHAsset获取到图片的路径，名称，大小。


PHImageManager.default().requestImageData(for: itemModel.asset, options: nil) { (imageData, _, orientation, i...]]></description><category></category></item><item><title><![CDATA[Swift - 实现数组的深拷贝]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/90668374</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/90668374</guid><author>mscinsidious</author><pubDate>Wed, 29 May 2019 12:21:37 +0800</pubDate><description><![CDATA[关于数组深浅拷贝问题可参考关于 strong，copy，深拷贝，浅拷贝 的整理这篇文章，本文不再详述。在此仅列举一具体案例，并记录解决方式，以供参考。



json数据结构：


json=
{
  "data" : {
    "data" : [
      {
        "shop_id" : 1,
        "product_list" : [
          {
...]]></description><category></category></item><item><title><![CDATA[tableViewCell嵌套collectionView，执行reloadData时跳动问题记录]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/90512519</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/90512519</guid><author>mscinsidious</author><pubDate>Fri, 24 May 2019 10:58:36 +0800</pubDate><description><![CDATA[如上图，热销下的多方格为tableViewCell中嵌套的collectionView，在添加商品成功并刷新tableView时，发生不规则跳动问题。

问题原因：

tableView中的所有Cell均采取自适应高度（UITableView.automaticDimension），且estimatedRowHeight未给予合理的高度。每当重新刷新table时，由于没有合适的预高度，从刷新t...]]></description><category></category></item><item><title><![CDATA[MARK：打开旧项目遇到问题]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/85760613</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/85760613</guid><author>mscinsidious</author><pubDate>Fri, 04 Jan 2019 10:35:05 +0800</pubDate><description><![CDATA[1. xxx has conflicting provisioning settings



打开项目的project.pbxproj文件，全局搜索b9c32186-a5ad-43dd-a910-1c639b1ad5c3，把指定行删除然后保存

参考链接-I

 

2. Multiple commands produce '....../Info.plist'

解决方案：
选择 xcode ...]]></description><category></category></item><item><title><![CDATA[iOS设置指定位置圆角(swift)]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/84343149</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/84343149</guid><author>mscinsidious</author><pubDate>Thu, 22 Nov 2018 18:01:25 +0800</pubDate><description><![CDATA[思路：

1、用贝塞尔曲线绘制指定圆角路径
	2、创建一个CAShapeLayer，设置shapeLayer.path等于绘制的路径
	3、将shapeLayer作为控件的layer.mask
代码：

1.在UIView的扩展类 --Extension+UIView中，添加以下方法：


func configRectCorner(corner: UIRectCorner, radii: CG...]]></description><category></category></item><item><title><![CDATA[iOS项目上传至AppStore问题汇总]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/84100810</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/84100810</guid><author>mscinsidious</author><pubDate>Thu, 15 Nov 2018 11:29:38 +0800</pubDate><description><![CDATA[ 

Problem 1：

 Invalid Swift Support - The files libswiftPhotos.dylib, ......  don’t match  /Payload/stylist.app/Frameworks/libswiftPhotos.dylib, ......

构建版本并成功上传至iTunesConnect，版本被拒并受到邮件，内容如上

Answe...]]></description><category></category></item><item><title><![CDATA[UICollectionView进行ReloadData时，隐式动画解决]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/83381367</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/83381367</guid><author>mscinsidious</author><pubDate>Thu, 25 Oct 2018 16:09:37 +0800</pubDate><description><![CDATA[

在刷新请求后对CollectionView进行reloadData，产生如上图所示的隐式动画效果。

解决方式：


[self.collectionView reloadData];
[UIView animateWithDuration:0 animations:^{
    [self.collectionView performBatchUpdates:^{
        [self...]]></description><category></category></item><item><title><![CDATA[旧项目引入CocoaPods遇到的坑]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/82464786</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/82464786</guid><author>mscinsidious</author><pubDate>Thu, 06 Sep 2018 18:15:45 +0800</pubDate><description><![CDATA[在给旧的项目引用CocoaPods时，当创建好Podfile后，进行 pod install指令。控制台发出如下信息，若直接编译则遇到 ld:library not found for -lPods-XXX 的报错。



 



 

这是关联路径不对，所以查找不到关联库。应该是新版pods对关联库这块进行了更新， Pods-XXX 变成 XXX，而clone下来的项目的buildsettin...]]></description><category></category></item><item><title><![CDATA[Cell上textField键盘的收回]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/80742685</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/80742685</guid><author>mscinsidious</author><pubDate>Wed, 20 Jun 2018 10:29:12 +0800</pubDate><description><![CDATA[

 

采用在Controller中，为TableView添加手势的方法，当点击时停止编辑



在ScrollView的代理方法中添加方法，当滑动时停止编辑

 

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {

    [self.tableView endEditing:YES];

}

 

 

 ...]]></description><category></category></item><item><title><![CDATA[RN项目中使用ESLint]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/80277777</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/80277777</guid><author>mscinsidious</author><pubDate>Fri, 11 May 2018 10:19:55 +0800</pubDate><description><![CDATA[ESLint 是用来检查我们写的 JavaScript 代码是否满足指定规则的静态代码检查工具。通过用 ESLint 来检查一些规则，我们可以：统一代码风格规则，如：代码缩进用几个空格；是否用驼峰命名法来命名变量和函数名等。减少错误，如：相等比较必须用 === ，变量在使用前必须被声明，在条件语句中不能使用赋值语句等。提高代码质量，如：函数最多有多少条件分支；最多有几个参数，代码块最多能嵌套多少层...]]></description><category></category></item><item><title><![CDATA[RN项目中接入 Mob-X]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/80176931</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/80176931</guid><author>mscinsidious</author><pubDate>Thu, 03 May 2018 11:02:08 +0800</pubDate><description><![CDATA[参考链接：Mobx仓库:  https://github.com/mobxjs/mobxMobx-react仓库:  https://github.com/mobxjs/mobx-reactMobx中文文档:  http://cn.mobx.js.orgmobx-react原理解析:  点击打开链接安装：npm install mobx --savenpm install mobx-react -...]]></description><category></category></item><item><title><![CDATA[RN中通过 callback 改变 state]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/80048334</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/80048334</guid><author>mscinsidious</author><pubDate>Mon, 23 Apr 2018 11:47:27 +0800</pubDate><description><![CDATA[Introduction:    TestNetwork中有两个按钮，点击后在testNetworkModel中请求到数据后，通过callback回传，改变state并显示。class testNetworkModel {    constructor(codeCallback, mailCallback) {        this.cCallback = codeCallback;  // 验...]]></description><category></category></item><item><title><![CDATA[React Native 常用命令]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/80017064</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/80017064</guid><author>mscinsidious</author><pubDate>Fri, 20 Apr 2018 14:59:08 +0800</pubDate><description><![CDATA[Yarn命令文档：https://yarnpkg.com/zh-Hans/docs/cli/  点击打开链接npm中文文档： https://www.npmjs.com.cn  点击打开链接 参考: Yarn命令使用： https://blog.youkuaiyun.com/mjzhang1993/article/details/70092902 点击打开链接1. 查看当前reactNative版本react...]]></description><category></category></item><item><title><![CDATA[RN中 ref 的使用]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/79754182</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/79754182</guid><author>mscinsidious</author><pubDate>Fri, 30 Mar 2018 11:21:27 +0800</pubDate><description><![CDATA[Introduction:

    ChatFootBar为ChatScreenIndex中用到的一个组件。在ChatScreenIndex中，当监听到某一事件发生时，在ChatFootBar组件中显示一个提示的AnimatedView，若干秒后AnimatedView渐变消失。

 

ChatScreenIndex:


// 定义chatFoot
chatFoot = null;

// ...]]></description><category></category></item><item><title><![CDATA[SourceTree保存密码--解决每次pull、push都要输入两次密码的问题]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/78770938</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/78770938</guid><author>mscinsidious</author><pubDate>Mon, 11 Dec 2017 11:27:34 +0800</pubDate><description><![CDATA[1、SourceTree每次Pull和Push时都要输入密码，确实很不方便：




2、提供一个简单的解决方法，即在远程仓库的url中显示输入username和password，每次就不用再重复输入，当然也有一定的安全隐患，可根据实际情况决定是否采用。

1）选中菜单：Repository（仓库）-- Repository settings(仓库设置) --Remotes--选中u]]></description><category></category></item><item><title><![CDATA[模态弹框Vc]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/76862593</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/76862593</guid><author>mscinsidious</author><pubDate>Mon, 07 Aug 2017 22:56:53 +0800</pubDate><description><![CDATA[MXPayViewController *pVc = [[MXPayViewController
alloc] 
init];

pVc.modalPresentationStyle =
UIModalPresentationOverFullScreen;

[self
presentViewController:pVc
animated:NO
completion:nil];]]></description><category></category></item><item><title><![CDATA[-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法]]></title><link>https://blog.youkuaiyun.com/mscinsidious/article/details/76849700</link><guid>https://blog.youkuaiyun.com/mscinsidious/article/details/76849700</guid><author>mscinsidious</author><pubDate>Mon, 07 Aug 2017 15:27:18 +0800</pubDate><description><![CDATA[-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法：

错误：NSMutableDictionary*d =[[[NSUserDefaults standardUserDefaults] objectForKey:@"xxxx"] mutableCopy];

修改：NS]]></description><category></category></item></channel></rss>