-
Notifications
You must be signed in to change notification settings - Fork 0
/
atom.xml
431 lines (426 loc) · 21.9 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<id>https://qz-wzf.github.io</id>
<title>Mr.王</title>
<updated>2023-01-11T09:01:46.809Z</updated>
<generator>https://github.com/jpmonette/feed</generator>
<link rel="alternate" href="https://qz-wzf.github.io"/>
<link rel="self" href="https://qz-wzf.github.io/atom.xml"/>
<subtitle>温故而后码</subtitle>
<logo>https://qz-wzf.github.io/images/avatar.png</logo>
<icon>https://qz-wzf.github.io/favicon.ico</icon>
<rights>All rights reserved 2023, Mr.王</rights>
<entry>
<title type="html"><![CDATA[OC国际化]]></title>
<id>https://qz-wzf.github.io/post/oc-guo-ji-hua/</id>
<link href="https://qz-wzf.github.io/post/oc-guo-ji-hua/">
</link>
<updated>2022-06-15T09:09:15.000Z</updated>
<summary type="html"><![CDATA[<p><strong>常用工具</strong><br>
1、批量生成国际化文件:https://github.com/CatchZeng/Localizable.strings2Excel</p>
<p><strong>一、创建文件</strong><br>
<img src="https://qz-wzf.github.io/post-images/1673424660745.jpg" alt="" loading="lazy"></p>
]]></summary>
<content type="html"><![CDATA[<p><strong>常用工具</strong><br>
1、批量生成国际化文件:https://github.com/CatchZeng/Localizable.strings2Excel</p>
<p><strong>一、创建文件</strong><br>
<img src="https://qz-wzf.github.io/post-images/1673424660745.jpg" alt="" loading="lazy"></p>
<!-- more -->
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[iOS开源网址]]></title>
<id>https://qz-wzf.github.io/post/ios-kai-yuan-wang-zhi/</id>
<link href="https://qz-wzf.github.io/post/ios-kai-yuan-wang-zhi/">
</link>
<updated>2022-06-02T02:36:09.000Z</updated>
<content type="html"><![CDATA[<p><strong>一、开源中国</strong><br>
https://www.oschina.net/ios/codingList</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Appium自动化集成Mac]]></title>
<id>https://qz-wzf.github.io/post/appium-zi-dong-hua-ji-cheng-mac/</id>
<link href="https://qz-wzf.github.io/post/appium-zi-dong-hua-ji-cheng-mac/">
</link>
<updated>2022-05-26T02:53:57.000Z</updated>
<content type="html"><![CDATA[<p><strong>一、必要库安装</strong><br>
有可能需要先更新系统版本以及xcode版本才进行下述操作:<br>
如果过没有安装过HomeBrew,需先安装homebrew(https://brew.sh)</p>
<pre><code>/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
</code></pre>
<p>如果没有安装npm,请到<a href="https://www.liaoxuefeng.com/wiki/1022910821149312/1023025597810528">node.js和npm安装</a><br>
如果因为版本太高报错,需先降级</p>
<pre><code>sudo npm install -g npm@6.14.10
</code></pre>
<p><strong>安装依赖库</strong></p>
<pre><code>brew install libimobiledevice --HEAD
</code></pre>
<p>如果没有安装 libimobiledevice,会导致Appium无法连接到iOS的设备,所以必须要安装。<br>
Carthage安装:Carthage项目依赖管理, 类似于 java 的 maven; 主要是 WebDriverAgent 使用,WebDriverAgent 是用它做项目依赖的</p>
<pre><code>brew install carthage
</code></pre>
<p>安装后检查是否安装成功</p>
<pre><code> carthage version
</code></pre>
<p>appium-doctor 安装</p>
<pre><code>npm install appium-doctor -g
</code></pre>
<p>安装后执行</p>
<pre><code>appium-doctor --ios
</code></pre>
<p>指令,可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果有那一项是打叉的,则进行安装就可以了。*黄色警告的可以不管<br>
<img src="https://qz-wzf.github.io/post-images/1653535529280.png" alt="" loading="lazy"><br>
接下来就可以在<a href="https://github.com/appium/appium-desktop/releases">Appium-Desktop</a>安装最新的Appium<br>
<img src="https://qz-wzf.github.io/post-images/1653535701534.png" alt="" loading="lazy"><br>
以及最新定位工具<a href="https://github.com/appium/appium-inspector/releases">appium-inspector</a><br>
<img src="https://qz-wzf.github.io/post-images/1653536223854.png" alt="" loading="lazy"><br>
接下来就可以在Appium Server GUI软件中修改自带WebDriverAgent<br>
文件路径</p>
<pre><code>/Applications/Appium Server GUI.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent
</code></pre>
<p><strong>配置WebDriverAgent:</strong><br>
1、配置WebDriverAgentLib及WebDriverAgentRunner,选择开发者账号<br>
<img src="https://qz-wzf.github.io/post-images/1653537392623.png" alt="" loading="lazy"><br>
2、连接并选择自己的ios设备及项目,并运行<br>
<img src="https://qz-wzf.github.io/post-images/1653537436536.png" alt="" loading="lazy"><br>
<img src="https://qz-wzf.github.io/post-images/1653537445989.png" alt="" loading="lazy"><br>
<img src="https://qz-wzf.github.io/post-images/1653537481416.png" alt="" loading="lazy"><br>
3、运行成功后会在手机桌面生成一个WebDriverAgent的APP,项目控制台当中也会打印出ip地址与端口号<br>
<img src="https://qz-wzf.github.io/post-images/1653537573377.png" alt="" loading="lazy"><br>
4、成功后在真机浏览器输入127.0.0.1:8100/status ,如果显示如下,则表示成功<br>
<img src="https://qz-wzf.github.io/post-images/1653547566250.png" alt="" loading="lazy"><br>
配置WebDriverAgent遇到的问题:<br>
1、报错信息:Building for iOS, but the linked and embedded framework 'RoutingHTTPServer.framework' was built for iOS + iOS Simulator<br>
将Build Settings里的Validate Workspace修改为Yes,操作如下所示:<br>
<img src="https://qz-wzf.github.io/post-images/1653547133904.jpg" alt="" loading="lazy"><br>
2、报错信息:/WebDriverAgent/WebDriverAgentLib/Utilities/FBFailureProofTestCase.m:29:1: Implementing deprecated method<br>
将recordFailureWithDescription修改为recordIssue,操作如下所示:<br>
<img src="https://qz-wzf.github.io/post-images/1653547211476.jpg" alt="" loading="lazy"><br>
3、WebDriverAgent/WebDriverAgentLib/Routing/FBWebServer.m:12:9: Could not build module 'RoutingHTTPServer'</p>
<p>将@property (nonatomic,assign, readonly) 修改为:@property (nonatomic, strong, readonly)<br>
4、Build成功后,执行Test会抛出异常,错误信息如下:</p>
<pre><code>WebDriverAgentRunner-Runner[1849:82950] -[UITestingUITests internalImplementation]: unrecognized selector sent to instance 0x283250c30
t = 0.05s Assertion Failure: <unknown>:0: failed: caught "NSInvalidArgumentException",
"-[UITestingUITests internalImplementation]: unrecognized selector sent to instance 0x283250c30"
</code></pre>
<p>问题原因是FBFailureProofTestCase中internalImplementation这个API在XCode11.4版本以后已经删除<br>
解决方法:打开WebDriverAgent/WebDriverAgentLib/Utilities/FBFailureProofTestCase.m,修改26~36行</p>
<pre><code>self.internalImplementation =
(_XCTestCaseImplementation *)[FBXCTestCaseImplementationFailureHoldingProxy
proxyWithXCTestCaseImplementation:self.internalImplementation];
</code></pre>
<p>改为</p>
<pre><code>if ([self respondsToSelector:@selector(internalImplementation)]) {
self.internalImplementation = (_XCTestCaseImplementation *)[FBXCTestCaseImplementationFailureHoldingProxy proxyWithXCTestCaseImplementation:self.internalImplementation];
} else {
//self.shouldSetShouldHaltWhenReceivesControl = NO;
self.shouldHaltWhenReceivesControl = NO;
}
</code></pre>
<p><img src="https://qz-wzf.github.io/post-images/1653547362029.jpg" alt="" loading="lazy"><br>
<strong>配置Appium Server GUI工具</strong><br>
1、运行Appium Server GUI,直接点击startServer<br>
<img src="https://qz-wzf.github.io/post-images/1653547714277.png" alt="" loading="lazy"><br>
2、运行Appium Instector,配置如下信息<br>
<img src="https://qz-wzf.github.io/post-images/1653547773960.png" alt="" loading="lazy"></p>
<pre><code>{
"platformName": "iOS",
"appium:platformVersion": "12.4",
"appium:deviceName": "iPhone 7",
"appium:udid": "35363dd7b3b73f6b6cc204966ec8dfd514163361",
"appium:bundleId": "com.nflg.wms.ios"
}
</code></pre>
<p>测试设备的udid,电脑连接上手机后,可以在Xcode的Window->Deriver中查看<br>
点击start session会报如下错误:<br>
<img src="https://qz-wzf.github.io/post-images/1653547899414.png" alt="" loading="lazy"><br>
需要将新会话表单中的路径信息更新回/wd/hub,改成如下:<br>
<img src="https://qz-wzf.github.io/post-images/1653547946832.png" alt="" loading="lazy"><br>
这样就可以了,首次会等待久一点</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[iOS开发常用第三方整理]]></title>
<id>https://qz-wzf.github.io/post/ios-kai-fa-chang-yong-di-san-fang-zheng-li/</id>
<link href="https://qz-wzf.github.io/post/ios-kai-fa-chang-yong-di-san-fang-zheng-li/">
</link>
<updated>2022-05-20T02:47:08.000Z</updated>
<content type="html"><![CDATA[<p><strong>---------------------------OC与Swift通用---------------------------</strong><br>
<strong>一、各种Banner效果:</strong><br>
https://github.com/WenchaoD/FSPagerView</p>
<p><strong>二、与web交互:</strong><br>
https://github.com/marcuswestin/WebViewJavascriptBridge</p>
<p><strong>三、实现json文件动态加载gif:Lottie</strong><br>
https://github.com/airbnb/lottie-ios<br>
json资源网站:https://lottiefiles.com/popular</p>
<p><strong>四、输入框与键盘联动:IQKeyboardManager</strong><br>
https://github.com/hackiftekhar/IQKeyboardManager</p>
<p><strong>五、上拉加载:MJRefresh</strong><br>
https://github.com/CoderMJLee/MJRefresh</p>
<p><strong>---------------------------OC---------------------------</strong><br>
<strong>一、图片缓存:SDWebImage</strong><br>
https://github.com/SDWebImage/SDWebImage</p>
<p><strong>二、网络加载:AFNetworking</strong><br>
https://github.com/AFNetworking/AFNetworking</p>
<p><strong>三、数据解析:YYModel</strong><br>
https://github.com/ibireme/YYModel</p>
<p><strong>四、约束布局:SDAutoLayout或Masonry</strong><br>
https://github.com/gsdios/SDAutoLayout<br>
https://github.com/SnapKit/Masonry</p>
<p><strong>五、常用Alert弹窗:LEEAlert</strong><br>
https://github.com/lixiang1994/LEEAlert</p>
<p><strong>六、日历选择控件:PGDatePicker</strong><br>
https://github.com/xiaozhuxiong121/PGDatePicker</p>
<p><strong>---------------------------Swift---------------------------</strong><br>
<strong>一、图片缓存:Kingfisher</strong><br>
https://github.com/onevcat/Kingfisher</p>
<p><strong>二、网络加载:Alamofire</strong><br>
https://github.com/Alamofire/Alamofire</p>
<p><strong>三、数据解析:KakaJSON</strong><br>
https://github.com/kakaopensource/KakaJSON</p>
<p><strong>四、约束布局:SnapKit</strong><br>
https://github.com/SnapKit/SnapKit</p>
<p><strong>五、仿抖音评论底部弹出控件:HWPanModal</strong><br>
https://github.com/HeathWang/HWPanModal</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Swift学习]]></title>
<id>https://qz-wzf.github.io/post/swift/</id>
<link href="https://qz-wzf.github.io/post/swift/">
</link>
<updated>2022-05-16T07:25:44.000Z</updated>
<content type="html"><![CDATA[<p><strong>常用属性</strong><br>
1、?不一定有值时 !必定存在值<br>
例1:</p>
<pre><code> var i: Int?
print(i)
</code></pre>
<p>输出结果为nil ,因为swift不会自动给创建的变量赋值(c语言不赋值就(根据编译器)随机给值,但用static创建的时候值默认为0)<br>
例2:</p>
<pre><code> var i: Int?
print(i!)
</code></pre>
<p>例3:</p>
<pre><code> var i: Int!
print(i!)
</code></pre>
<p>两段代码的错误都为,输出时i都是!确认有值,但其实使用之前没有赋值,所以崩溃</p>
<p>2、??空合并运算符<br>
合并空值运算符(a??b)如何可选项a有值则展开,如果没有值是nil,则返回默认值b。</p>
<pre><code> let a: Int? = nil
let b: String = "123111"
print(a ?? b)
</code></pre>
<p>上面就会输出“123111”</p>
<p>3、参数的内部名称和外部名称<br>
Color这个结构体的构造方法中提供了三个参数,其中red是第一个参数的外部名称,redColor是第一个参数的内部名称;同理green和blue分别是第二、三个参数的外部名称,greenColor和blueColor分别是第二、三个参数的内部名称。外部名称在创建实例时的提示中显示,内部名称只能在构造方法内部使用,两个名称指的是同一个参数。在创建实例时会显示外部名称截图:<br>
<img src="https://qz-wzf.github.io/post-images/20170215111953769.png" alt="" loading="lazy"></p>
<p>4、集合Set<br>
(1)、Swift中,集合Set可以存放多个相同类型的数据<br>
(2)、Set存放的数据是无序的<br>
(3)、Set中存放的数据不能重复,如果重复,系统将会自动删除多余重复数字</p>
<pre><code>var set01:Set = [1,2,3,4,5,6,6]
set01.insert(8)
set01.remove(2)
print(set01)
</code></pre>
<p>输出结果为[5, 2, 4, 3, 6, 1]</p>
<p>5、数组排序<br>
可以用本来数组接收</p>
<pre><code>var set02:[Int] = [1,2,3,4,5,6,7]
set02.sort { num, num1 in
return num > num1 ? true : false
}
print(set02)
</code></pre>
<p>也可以用新数组接收</p>
<pre><code>let sortArr : [Float] = [9.54,5.88,2.09,4.76,73.1,6.9,3.087]
let endArr = sortArr.sorted { (num01, num02) -> Bool in
return num01 > num02 ? true : false
}
print(endArr)
</code></pre>
<p><strong>关键字</strong><br>
1、 open:可以在任何地方访问、继承和重写</p>
<p>2、public:可以在任何地方被访问,在其他module中不能被继承和重写(一会在详细介绍一下什么是module内和module外)</p>
<p>3、internal:默认访问级别,在整个模块内都可以被访问</p>
<p>4、fileprivate:其修饰的属性可以再同一个文件被访问、继承和重写,同一个文件指同一个swift文件,一个文件中可以有多个类</p>
<p>5、private:其修饰的属性和方法只能在本类被访问和使用,不包括扩展类</p>
<p><strong>闭包</strong><br>
闭包其实和OC中的Block相似<br>
我们可以这样定义下闭包表达式</p>
<pre><code>{
(参数列表) -> 返回值类型 in
函数体代码
}
</code></pre>
<p>例子:<br>
先定义一下方法</p>
<pre><code>func testBlock(v1 : Int, v2 : Int, fn:(Int, Int) -> Int)
{
print(fn(v1,v2))
}
</code></pre>
<p>或者:</p>
<pre><code>let closureFunction = { (para1: Int, para2: Int) -> Int in
return para1 + para2
}
</code></pre>
<p>调用下这个方法</p>
<pre><code>testBlock(v1: 10, v2: 20) { v1, v2 in
return v1 + v2
}
</code></pre>
<p>可以输出值为30</p>
<p>嵌套函数<br>
嵌套函数是指在函数内部又加了一个函数并执行相关操作的一种函数。嵌套函数拥有自己的名字,并且可以捕捉到上下文的变量值。例:</p>
<pre><code>func nestedBlock(nestedAmout amout: Int) -> () ->Int
{
var float = 10
func nestedBlockSum() -> Int{
float = amout + float
return float
}
return nestedBlockSum
}
</code></pre>
<p>调用如下:</p>
<pre><code>let sum = nestedBlock(nestedAmout: 20)
print(sum())
</code></pre>
<p>可以输出结果为30<br>
nestedBlock这个函数接受一个int类型的参数,并且返回一个() -> Int的函数<br>
nestedBlockSum是嵌套在nestedBlock函数内的一个闭包。注意,闭包都是引用类型</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[iOS判断tableview滚动到第几个section]]></title>
<id>https://qz-wzf.github.io/post/ios-pan-duan-tableview-gun-dong-dao-di-ji-ge-section/</id>
<link href="https://qz-wzf.github.io/post/ios-pan-duan-tableview-gun-dong-dao-di-ji-ge-section/">
</link>
<updated>2021-12-10T02:51:09.000Z</updated>
<content type="html"><![CDATA[<pre><code>- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat statusH = [UIApplication sharedApplication].statusBarFrame.size.height;
CGFloat bottomCellOffset = [self.tableView rectForSection:1].origin.y - statusH;
CGFloat bottomCellOffset2 = [self.tableView rectForSection:2].origin.y - statusH;
if (scrollView.contentOffset.y >= bottomCellOffset && scrollView.contentOffset.y <= bottomCellOffset2)
{
NSLog(@"第一个sectionHeaderView滑动到顶部");
}
else if (scrollView.contentOffset.y >= bottomCellOffset2)
{
NSLog(@"第二个sectionHeaderView滑动到顶部");
}
else
{
NSLog(@"默认");
}
}
</code></pre>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[CABasicAnimation常见问题]]></title>
<id>https://qz-wzf.github.io/post/cabasicanimation-chang-jian-wen-ti/</id>
<link href="https://qz-wzf.github.io/post/cabasicanimation-chang-jian-wen-ti/">
</link>
<updated>2021-11-22T06:42:53.000Z</updated>
<content type="html"><![CDATA[<p><strong>1、页面跳转后动画停止</strong><br>
<code>animation.removedOnCompletion = NO;</code></p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[iOS中CollectionView设置无限滚动]]></title>
<id>https://qz-wzf.github.io/post/ios-zhong-collectionview-she-zhi-wu-xian-gun-dong/</id>
<link href="https://qz-wzf.github.io/post/ios-zhong-collectionview-she-zhi-wu-xian-gun-dong/">
</link>
<updated>2021-11-11T09:19:17.000Z</updated>
<content type="html"><![CDATA[<p><strong>1、设置UICollectionViewFlowLayout 切设置最大sections</strong></p>
<pre><code> #define YYMaxSections 100
</code></pre>
<pre><code class="language-objective-c"> UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.itemSize = CGSizeMake();
flowLayout.minimumLineSpacing = 0;
flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;//设置滚动方向为横向滚动
</code></pre>
<p><strong>2、设置collectionview</strong></p>
<pre><code class="language-objective-c"> _collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake() collectionViewLayout:flowLayout];
_collectionView.showsHorizontalScrollIndicator = NO;
_collectionView.pagingEnabled = YES;//设置滚动为页码滚动
_collectionView.backgroundColor = kWhiteColor;
_collectionView.delegate = self;
_collectionView.dataSource = self;
[self.collectionView registerClass:[] forCellWithReuseIdentifier:@"cell"];
[self.view addSubview:_collectionView];
[self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:self.rowNum inSection:YYMaxSections/2] atScrollPosition:UICollectionViewScrollPositionLeft animated:YES];//设置初始偏移量
</code></pre>
<p><strong>3、设置collectionview代理</strong></p>
<pre><code class="language-objective-c"> -(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
return YYMaxSections;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return self.allAry.count;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
}
</code></pre>
<p><strong>4、根据滚动距离查看当前item</strong></p>
<pre><code class="language-objective-c"> - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
int page = (int) (scrollView.contentOffset.x/scrollView.frame.size.width+0.5)%self.allAry.count;
MLog(@"page===============%d",page)
}
</code></pre>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[日常开发常用]]></title>
<id>https://qz-wzf.github.io/post/ri-chang-kai-fa-chang-yong/</id>
<link href="https://qz-wzf.github.io/post/ri-chang-kai-fa-chang-yong/">
</link>
<updated>2021-08-24T03:42:26.000Z</updated>
<content type="html"><![CDATA[<p><strong>1、设置tableview中的cell无点击效果</strong></p>
<pre><code> cell.selectionStyle = UITableViewCellSelectionStyleNone;
</code></pre>
<p><strong>2、pop到指定界面</strong></p>
<pre><code> for (UIViewController *controller in self.navigationController.viewControllers)
{
if ([controller isKindOfClass:[AViewController class]]) {
AViewController *A =(AViewController *)controller;
[self.navigationController popToViewController:A animated:YES];
}
}
</code></pre>
<p><strong>3、SDLayout使用注意:</strong><br>
1、sd_resetLayout更新布局约束后要记得使用updateLayout来更新约束</p>
<p><strong>4、UICollectionView设置底部圆角的是要要注意:</strong><br>
1、使用setCornerOnBottom设置圆角会使collectionview左右滑动底部出现默认cell(参考建材管家首页实时库存)<br>
<strong>5、Button:</strong><br>
1、设置按钮文字居左显示</p>
<pre><code> btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
</code></pre>
<p>2、设置左文右图</p>
<pre><code> [btn setImageEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
</code></pre>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[iOS审核大全]]></title>
<id>https://qz-wzf.github.io/post/ios-shen-he-da-quan/</id>
<link href="https://qz-wzf.github.io/post/ios-shen-he-da-quan/">
</link>
<updated>2021-02-05T09:02:37.000Z</updated>
<content type="html"><![CDATA[<p><em>一、隐私权限问题</em><br>
1.iOS14最新推出了应用首次打开提示<br>
<em>二、首次提交检测项目包含UIWebView</em><br>
1.cd到项目所在路径<br>
2、输入以下命令</p>
<pre><code>grep -r UIWebView .
</code></pre>
<p>3、成功后会出现那些文件包含UIWebView,删除对应的就行</p>
]]></content>
</entry>
</feed>