段落中部分文案添加点击事件
import UIKit import CoreMedia import CoreMIDI open class HHTouchableLabel: UILabel { var touchBlocks:[String:()->Void] = [:] public required init?(coder aDec…
阅读全文 »已阅读 183 次import UIKit import CoreMedia import CoreMIDI open class HHTouchableLabel: UILabel { var touchBlocks:[String:()->Void] = [:] public required init?(coder aDec…
阅读全文 »已阅读 183 次今天在做一个功能的时候需要将部分view包含在一个大的容器,发现在这样做后,在这个打容器下层的View的点击事件完全失效了,于是就想着把容器的userInteractionEnabled设为false,然后试了一下发现这个时候这个打容器里的View的点击事件又不生效了,于是发现通过userInteractionEnab…
阅读全文 »已阅读 844 次在我们开发过程中可能会遇到UICollectionView的这个Delegate方法的时候不生效,那么是因为什么原因不生效呢?下面我给出一张截图说明一下原因 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayo…
阅读全文 »已阅读 1,098 次let originalString = “test/test” let escapedString = originalString.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) print(escapedString!)
阅读全文 »已阅读 1,034 次接下来是在openUrl里处理打开的操作,会给出选定文件的本地URL func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any]) -> Bool { if url.i…
阅读全文 »已阅读 1,750 次import UIKit enum AlignType : NSInteger { case left = 0 case center = 1 case right = 2 } class EqualCellSpaceFlowLayout: UICollectionViewFlowLayout { //两个Cell之间…
阅读全文 »已阅读 434 次今天在写一个功能的时候用到了Dictionary 的 grouping by 这个用法,代码先贴出来 import UIKit class AlignFlowLayout: UICollectionViewFlowLayout { required init(itemSize: CGSize = CGSize.zero…
阅读全文 »已阅读 1,159 次今天翻原来写过的代码发现有些看不懂了,比如@escaping这货我就看不太懂了,为什么会在传入一个方法的时候会给闭包加上这这个呢? 就例如如下代码: func createViewModel(pay:@escaping (()->Void),change:@escaping (()->Void)) ->…
阅读全文 »已阅读 2,166 次//MARK: – 查找顶层控制器、 /// 获取顶层控制器 根据window func getTopVC() -> (UIViewController?) { var window = UIApplication.shared.keyWindow //是否为当前显示的window if window?.wind…
阅读全文 »已阅读 1,128 次在我们iOS日常的开发过程中会遇到各种各样的内存泄漏问题,这个问题表面可能看起来并不严重,但实际有很大的弊端,会造成过多内存的使用不会被回收,所有今天我来总结一下我遇到过的内存泄漏的问题以及我查找的思路。 ###下面我就来总结一下常见内存泄漏出现的地方。 在使用Timer造成的内存泄漏 相信我们在做开发过程会时不时用到…
阅读全文 »已阅读 1,250 次今天在适配iOS13的时候发现像获取或设置UITextField的PlaceHolder崩溃,造成崩溃的原因是如下这样的写法,现在被系统禁止使用了 color = [textField valueForKeyPath:@”_placeholderLabel.textColor”]; 现在正确的写法如下 UITextFi…
阅读全文 »已阅读 1,703 次首先我们需要准备UI界面,然后我们需要在Info.plist中添加如下配置 <key>NSLocationWhenInUseUsageDescription</key> <string>应用将在运行过程中获取位置信息</string> <key>NSLocat…
阅读全文 »已阅读 1,681 次func currentYear() -> String { let date = Date() let caledar = Calendar.current let year = caledar.component(.year, from: date) return “\(year)” } 我这里只写了一个获取…
阅读全文 »已阅读 1,130 次最近看一个老项目发现在某些部分在运行的时候会出现内存泄漏,造成内存每打开一次界面就会增长大概10几兆,所以我就着手查了一下问题,下面对查找以及解决的过程做了一下总结。 1. 首先凭着之前遇到的问题总结出来的经验,先从类中的属性或称之为变量或者调用方法在block中的循环引用问题,例如如下代码 [_photos enum…
阅读全文 »已阅读 972 次今天遇到一个问题就是我需要在Objective-C的代码内调用swift写的一个类库,于是乎就遇到问题了,根本不知道怎么写,然后就查资料,说是swift库中的类和方法机上@objc库会生成moudleName-swift.h这样一个头文件,拿来引用就可以Objective-C中访问swift写的代码了。 1.实验的步骤…
阅读全文 »已阅读 1,295 次let windows = Array(UIApplication.shared.windows.reversed()) for window in windows { let windowOnMainScreen = window.screen == UIScreen.main let isWindowVisible…
阅读全文 »已阅读 1,275 次import UIKit class Utils: NSObject { static func topviewController() -> UIViewController? { var aRoot = UIApplication.shared.keyWindow?.rootViewController wh…
阅读全文 »已阅读 2,324 次使用UIPanGestureRecognizer实现UIView的拖动的时候,需要先给UIView添加手势对象 let gesture = UIPanGestureRecognizer(target: self, action: #selector(move)) gesture.maximumNumberOfTouch…
阅读全文 »已阅读 1,728 次用法去下,只要在Info.plist中配置上对应文件类型就行,如图(以PDF文件作为示例) <key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeIconFiles</key&g…
阅读全文 »已阅读 1,479 次