简单选择器 元素选择器作用:根据标签名来选中指定的元素语法:标签名{}示例:p()、h1{} id选择器作用:根据元素的id属性值选中一个元素语法:#id属性值{}示例:#r...
CSS又称层叠样式表,实际上网页是一个嵌套的层叠结果,多层摞在一起,我们看到的只是最上面一层的样式。通过CSS,我们可以修改每一层的样式。 使用CSS修改元素样式的方式如下:...
StatefulWidget 应对有交互、需要动态变化视觉效果的场景 StatelessWidget 则用于处理静态的、无状态的视图展示 当你所要构建的用户界面不随任何状态信...
iOS在UIWebView时代,系统提供了keyboardRequiresUserInteraction属性,用于处理webView自动弹起键盘,但是在WKWebView,该...
Widget 是 Flutter 世界里对视图的一种结构化描述,你可以把它看作是前端中的“控件”或“组件”。Widget 是控件实现的基本逻辑单位,里面存储的是有关视图渲染的...
self.estimatedRowHeight = 0.0
self.estimatedSectionFooterHeight = 0.0
self.estimatedSectionHeaderHeight = 0.0
可以加上这几行试试
iOS开发:可拖动重排cell的tableView本人iOS新手,借鉴前人经验封装了一个可拖动cell,重排cell的tableView,效果与iPhone自带天气应用中的tableView相似,可在多个section之间拖...
为什么想买房?是有结婚对象了吗?存钱是好事,但相比你的年龄22岁更应该投资自己。比如多接触同行的大佬,这些接触也是需要花钱的,提升自己的专业水平,使自己往上升。这样买房更容易些。另外,在那个城市定居在买房,千万不要人在深圳房在县城,一年住不上几天,这样你买房是为了堵亲戚朋友的嘴,不值当。房子最大的属性是居住。先把钱存着,等做出定居的决定后再买也不迟的
这个方法不行,是 androidstudio的问题,直接在终端open /Applications/Android\ Studio.app,解决
NSArray *resourceArray = [PHAssetResource assetResourcesForAsset:rescource.phAsset];
bIsLocallayAvailable = [[resourceArray.firstObject valueForKey:@"locallyAvailable"] boolValue];
这个方法判读并不准确
photos 判断图片是否在icloud的几个坑网络上找了很久,基本都是这个方法 但是我试了很多次,调整了很多options参数,就是不返回 PHImageResultIsInCloudKey 这个key,搜寻良久 发现只...
最近升级了iOS13系统,之前项目使用系统TabBarController创建的项目在启动的时候selectTitleColor 和 NormalTitleColor 有时候...
目前没碰到呢
苹果审核被拒反馈的崩溃日志解读 txt/crash苹果审核反馈对日志文件都是未经过转换的,里面全是符号,不方便解读。所以需要我们转换一下。 需要的文件 转换一共需要3个文件 symbolicatecrash dSYM .cr...
reloadRevalidatingCacheData 这个策略,苹果官方文档明确说了没有实现,你居然说有效!!!😓
限制输入框只能输入两位小数 限制输入框只能输入两位小数,如果一开始输入0,然后再次输入数字。默认在中间给添加上小数点。
Controller的viewdidload中的viewmodel.layer.borderwidth是哪里来的。。我感觉是不是应该是textfield的属性,编写失误了?
为啥我这用swift创建的项目,提示Cannot find 'XXXX' in scope 😓
IOS创建CocoaPods私有库IOS创建CocoaPods私有库 最近领导说要把项目模块化、组件化,网上看了一大推资料,自己瞎搞了一天,终于告一段落。 IOS创建私有库步骤 1、在终端上移动到你想创建po...
前置摄像头颠倒问题,简单这样改了改
// 处理视频尺寸大小
+ (void)changeVideoSizeWithAsset:(AVAsset *)asset passThroughLayer:(AVMutableVideoCompositionLayerInstruction *)passThroughLayer {
AVAssetTrack *videoAssetTrack = [asset tracksWithMediaType:AVMediaTypeVideo].firstObject;
if (videoAssetTrack == nil) {
return;
}
CGSize naturalSize = videoAssetTrack.naturalSize;
// if ([SDVideoUtils videoDegressWithVideoAsset:asset] == 90) {
naturalSize = CGSizeMake(naturalSize.height, naturalSize.width);
// }
if ((int)naturalSize.width % 2 != 0) {
naturalSize = CGSizeMake(naturalSize.width + 1.0, naturalSize.height);
}
CGSize videoSize = SDVideoSize;
if ([SDVideoUtils videoDegressWithVideoAsset:asset] == 90) {
CGFloat height = videoSize.width * naturalSize.height / naturalSize.width;
CGAffineTransform translateToCenter = CGAffineTransformMakeTranslation(videoSize.width, videoSize.height/2.0 - height/2.0);
CGAffineTransform scaleTransform = CGAffineTransformScale(translateToCenter, videoSize.width/naturalSize.width, height/naturalSize.height);
CGAffineTransform mixedTransform = CGAffineTransformRotate(scaleTransform, M_PI_2);
[passThroughLayer setTransform:mixedTransform atTime:kCMTimeZero];
} else {
CGFloat height = videoSize.width * naturalSize.height / naturalSize.width;
CGAffineTransform translateToCenter = CGAffineTransformMakeTranslation(videoSize.width, videoSize.height/2.0 - height/2.0);
CGAffineTransform scaleTransform = CGAffineTransformScale(translateToCenter, -videoSize.width/naturalSize.width, height/naturalSize.height);
CGAffineTransform mixedTransform = CGAffineTransformRotate(scaleTransform, M_PI_2);
CGAffineTransform last = CGAffineTransformTranslate(mixedTransform, 0, -naturalSize.width);
[passThroughLayer setTransform:last atTime:kCMTimeZero];
}
}
SDVideoCamera:仿抖音(视频录制、视频剪辑、视频合成)闲话不多讲,先上项目Github传送门。 SDVideoCamera传送门 前言 又是好久没有更新博客了,哈哈哈,由于近来从公司离职,再加上近来要结婚的缘故,所以有大量充足的...