和定时器一样,闭包捕获上次渲染的变量,具体可以看下这篇文章:https://raoenhui.github.io/react/2019/11/07/hooksSetinterval/
React Hooks useEffect多个依赖批量操作前言 最近在使用 react hooks 重构公司系统,在使用由于 useEffect 的特性,当有多个依赖项时, 如果同时修改了多个依赖项, useEffect 会调用多次...
和定时器一样,闭包捕获上次渲染的变量,具体可以看下这篇文章:https://raoenhui.github.io/react/2019/11/07/hooksSetinterval/
React Hooks useEffect多个依赖批量操作前言 最近在使用 react hooks 重构公司系统,在使用由于 useEffect 的特性,当有多个依赖项时, 如果同时修改了多个依赖项, useEffect 会调用多次...
前言 最近在使用 react hooks 重构公司系统,在使用由于 useEffect 的特性,当有多个依赖项时, 如果同时修改了多个依赖项, useEffect 会调用多次...
xcode11跑13的模拟器没问题, 跑12.2的会崩溃啊dyld: Library not loaded: /usr/lib/libstdc++.6.dylib
解决Xcode10、Xcode11的 Library not loaded: /usr/lib/libstdc++.6造成的crash及报错由于Xcode10、11 废弃了libstdc++,库文件libstdc++.6.0.9. dylib、libstdc++.6. dylib、libstdc++. dylib...
看了下大部分都很基础😅 他说的对layoutsubviews 在每次布局发生变化的时候都会调用,如果是frame布局的话写在这个方法是正确的(保证frame更新),但是自动布局的话不能写在这个方法会一直添加相同的约束,有更改约束的话还有可能冲突,应该写在init或者viewdidload之类的方法里
阿里—最新iOS面试题总结关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教。主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧。 阿里 一面 1、...
因为Xcode升级缺少lstdc++库引起一系列报错, 每次升级Xcode都要拷贝粘贴, 写了这个脚本一键修复Xcode10,Xcode11以及后续升级Xcode缺少lstd...
OC 版翻译楼主的: 复制粘贴直接用
#import "SlideBigAnimationLayout.h"
#import "SDAutoLayout.h"
/// 垂直缩放除以系数
static CGFloat ActiveDistance = 400;
/// 缩放系数
static CGFloat ScaleFactor = 0.25;
@implementation SlideBigAnimationLayout
- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity {
CGRect targetRect = CGRectMake(proposedContentOffset.x, 0.0, self.collectionView.width, self.collectionView.height);
// 目标区域中包含的cell
NSArray<UICollectionViewLayoutAttributes *> *attriArray = [super layoutAttributesForElementsInRect:targetRect];
// collectionView落在屏幕中点的x坐标
CGFloat horizontalCenterX = proposedContentOffset.x + (self.collectionView.width / 2.0);
CGFloat offsetAdjustment = CGFLOAT_MAX;
for (UICollectionViewLayoutAttributes *layoutAttributes in attriArray) {
// 找出离中心点最近的
CGFloat itemHorizontalCenterX = layoutAttributes.center.x;
if (fabs(itemHorizontalCenterX - horizontalCenterX) < fabs(offsetAdjustment)) {
offsetAdjustment = itemHorizontalCenterX - horizontalCenterX;
}
}
return CGPointMake(proposedContentOffset.x + offsetAdjustment, proposedContentOffset.y);
}
- (NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect{
NSArray* array = [super layoutAttributesForElementsInRect:rect];
CGRect visibleRect = CGRectZero;
visibleRect.origin = self.collectionView.contentOffset;
visibleRect.size = self.collectionView.bounds.size;
for (UICollectionViewLayoutAttributes* attributes in array) {
CGFloat distance = CGRectGetMidX(visibleRect) - attributes.center.x;
CGFloat normalizedDistance = fabs(distance / ActiveDistance);
CGFloat zoom = 1 - ScaleFactor * normalizedDistance;
attributes.transform3D = CATransform3DMakeScale(1.0, zoom, 1.0);
}
return array;
}
collectionView实现无限循环滚动卡片github源码地址 效果展示 前言 去年因为项目中有个切换学校的功能,要求以卡片浮动效果展示,并且能够无限循环滚动。 之前找了个demo它是通过自定义view动画实现的,卡...
这样写线程有问题, FMDatabase实例不能在多线程的时候同时读写, 应该封装FMDatabaseQueue才是线程安全的
FMDB的使用方法(附Demo)最近在项目中需要在多个页面对同样的数据进行相关操作,于是便用到了FMDB数据库操作,以下便是FMDB的一些简单的使用方法。附Demo一份:FMDBDemo 1.为了更好的的进...