iOS12上點(diǎn)擊UITableViewCell 后傀履,cell的subview背景色都消失了
原因:本來是想關(guān)閉cell選中效果,設(shè)置 selectedBackgroundView = UIView()蛛株,就導(dǎo)致了在iOS13上沒問題,但是在iOS12上就出現(xiàn)了上述問題; 應(yīng)該設(shè)置 selectionStyle 為 none, 達(dá)到上述效果,還能避免設(shè)置 bgView時(shí)創(chuàng)建View對(duì)象,增加內(nèi)存開銷
coding:
cell.selectedBackgroundView = UIView()
改為
cell.selectionStyle = .none
Xcode12 編譯后础拨,UITableViewCell/UICollectionView上Btn事件都不再響應(yīng),普通View touchBegin事件也不再響應(yīng)
原因:Xcode12 時(shí)初始化 UITableViewContentView 時(shí)機(jī)變了,直接把subView 覆蓋了绍载;把subview添加到UITableViewContentView 上太伊,而不是 cell上
addSubview(itemView)
改為
contentView.addSubview(itemView)
cell上所有subview都要按照上面的添加才行,否則就會(huì)出現(xiàn)事件不響應(yīng)問題
view轉(zhuǎn)化成image 失敗
該控件一定要先確定superview, 獲取上下文 UIGraphicsGetCurrentContext() 才會(huì)成功, 否則生成image就會(huì)失敼渥辍;可以隨便把它加到 view上, 生成圖片后锰提,再remove
OC 類.m文件已經(jīng) #import "Xxx-Swift.h", 還是報(bào)錯(cuò)找不到基類
xxx-Bridging-Header.h 文件已經(jīng)引入基類了
方法一: 因?yàn)锽ase 還是OC類曙痘,OC類相互引用必須先 import
A.h
#import <UIKit/UIKit.h>
@interface A: Base
@end
改為
#import <UIKit/UIKit.h>
#import "Base.h"
@interface A: Base
@end
方法二: #import "Xxx-Swift.h" 放到OC類 A.h中
A.h 改為
#import <UIKit/UIKit.h>
#import "Xxx-Swift.h"
@interface A: Base
@end
OC 類引用不了Swift類
Swift 類改為繼承于NSObject 類
class A {}
改為
class A: NSObject {}
在OC類里調(diào)用不了Swift 類的靜態(tài)方法
Swift 類 使用 @objcMembers 修飾芳悲,方法就不需要使用 @objc修飾了
class A: NSObject {}
改為
@objc Members class A: NSObject {}
failed to emit precompiled header '/Users/user/Library/Developer/Xcode/DerivedData/xxx-dziofnnbyomgfmfskuccdbuptgto/Build/Intermediates.noindex/PrecompiledHeaders/xxx-Bridging-Header-swift_1ONXMOEYIQOMJ-clang_RXQH83D8K0AB.pch'
子工程本來沒有unit testing, 添加后運(yùn)行空的 testCase, 報(bào)上述錯(cuò)誤,解決辦法就是 單元測(cè)試target 的配置需要設(shè)置成和工程target的設(shè)置一樣边坤;
第一步 File -> New -> Target -> Unit Testing Bundle
第二步 選中 .xcodeproj文件名扛,targets -> xxxTests -> Framework/Header Search Paths 設(shè)置成和工程target一樣即可
升級(jí) Xcode12.3 后編譯報(bào)錯(cuò)
- Project.xcodeproj Building for iOS Simulator, but the linked and embedded framework 'xx.framework' was built for iOS + iOS Simulator.
解決辦法:
Xcode -> File -> Project Settings -> Per-User Project Settings -> Build System -> Legacy Build System(Deprecated)
在 Xcode9 的時(shí)候,就推出了 New Build System
茧痒,作用就是提高編譯速度肮韧; 在 Xcode10 的時(shí)候改為默認(rèn)了,而 Per-User Project Settings
是 Use Shared Setting
旺订; 升級(jí)到 Xcode12.3 后此處設(shè)置也要改了弄企。
上面的辦法只是治標(biāo)不治本,也犧牲了 Xcode 的構(gòu)造優(yōu)化区拳,最好還是催促第三方提供新的版本拘领,避免此問題。
New Build System
帶來的具體構(gòu)建編譯提升可以參考 文章