
Swift
Mackellen
对代码有一种执着的热爱!
展开
-
swift 视频截取一帧的几种实现方式
1. AVFoundation:通过 AVFoundation 框架可以方便地读取和处理视频文件。您可以使用 AVAssetReader 和 AVAssetImageGenerator 类将视频帧转换为图像,然后选择要截取的帧。2. Core Media:Core Media 是 Apple 提供的一个底层媒体框架,提供了视频截取的功能。您可以使用 Core Media 函数来读取视频文件并选择要截取的帧。3. ImageIO:ImageIO 是 Apple 提供的图像处理框架,支持读取和写入图像文件。原创 2023-02-09 10:57:05 · 1744 阅读 · 0 评论 -
Swift 中字符串截取的几种常见情况
【代码】Swift 中字符串截取的几种常见情况。原创 2023-02-08 16:56:43 · 4967 阅读 · 0 评论 -
SwiftUI @State、@ObservedObject 和 @EnvironmentObject 之间有什么区别?
State属于单个视图的简单属性。它们通常应该被标记private。@State对于属于特定视图并且永远不会在该视图之外使用,因此将这些属性标记为私有非常重要,以重新强化这种状态是专门设计为永远不会逃避其视图的想法。原创 2022-10-10 16:52:38 · 1047 阅读 · 0 评论 -
ios tabBar 背景透明设置
iOS UITabBarController 背景颜色透明设置,毛玻璃效果。原创 2022-06-20 16:43:38 · 1736 阅读 · 0 评论 -
ios navigationBar 设置透明
// 首先设置navigationBar 的具体背景样式// 其次设置navigationBar 是否透明// 最后需要设置布局起始点位置 ,如果非tableview, collectionview 则设置属性:// 如果是tableview,collectionview布局,则需要设置属性:...原创 2022-06-20 16:37:53 · 1860 阅读 · 0 评论 -
iOS 发送消息给Flutter
iOS 发送消息代码lazy var messageChannel:FlutterBasicMessageChannel = { let navigation = UIApplication.shared.keyWindow?.rootViewController as? UINavigationController guard let contoller = navigation?.viewControllers.first as? FlutterViewCont原创 2022-02-22 10:55:39 · 2025 阅读 · 0 评论 -
iOS Native跳转到Flutter页面
iOS原生页面跳转到指定Flutter页面override func viewDidLoad() { super.viewDidLoad() let sendBtn = UIButton(type: .custom) sendBtn.frame = CGRect(x: 100, y: 300, width: 120, height: 50) sendBtn.setTitle("发送消息", for: .n原创 2022-02-21 14:23:01 · 3349 阅读 · 3 评论 -
Flutter 跳转到原生Native页面
Flutter 跳转到iOS原生Native页面,flutter 代码进行注册发送调用请求class _MyHomePageState extends State<MyHomePage> { int _counter = 0; MethodChannel eventChannel = const MethodChannel('com.flutterToNative.first'); void _onPressedAction() { try { Futur原创 2022-02-15 17:36:50 · 2473 阅读 · 0 评论 -
Swift 二叉树遍历
class TreeNode<Value> { var val: Value var left: TreeNode? var right: TreeNode? init(value: Value, left: TreeNode?, right: TreeNode?) { self.val = value self.left = left self.right = right }}.原创 2022-02-15 16:41:32 · 895 阅读 · 0 评论 -
Swift 链表反转
反转链表主要目的是节省内存空间,不用开辟新的内存空间,在原来的空间进行操作。若要进行增删操作就可以在具体某个节点进行增删,然后把前后节点拼接在一起,从而组成新的链表。class LinkNode<Value> { var val:Value var next: LinkNode? init(value: Value, next: LinkNode? = nil) { self.val = value self.next = n.原创 2022-02-14 17:57:56 · 749 阅读 · 0 评论 -
Swift图片裁切
// pod Toucan库import Toucanoverride func viewDidLoad() { let myImage = UIImage(named: "Portrait")! // 绘制有圆角图 let resizedImage = Toucan(image: myImage).resize(CGSize(width: 100, height: 100), fitMode: .crop).maskWithRoundedRect(cornerRadiu.原创 2021-04-15 10:43:55 · 1222 阅读 · 0 评论 -
RxSwift 倒计时按钮
class MainViewController: UIViewController { let disposeBag = DisposeBag() var timeStr: String? = "点击发送" { didSet { if timeStr == "重新发送" { self.timeButton.setTitle(timeStr, for: .normal) self.ti.原创 2021-04-12 18:18:51 · 986 阅读 · 0 评论 -
Swift 实现链表反转
//示例://输入: 1->2->3->4->5->NULL//输出: 5->4->3->2->1->NULL//进阶://你可以迭代或递归地反转链表。你能否用两种方法解决这道题?原创 2020-12-02 11:26:28 · 327 阅读 · 0 评论 -
swift 二分查找法
/// 给定一个有序的(升序)整型数组(nums) 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1///使用二分查找查找func sencondSearch(_ nums: [Int], _ target: Int) -> Int { if nums.isEmpty { return -1} var left = 0 var right = nums.count-1 while left <...原创 2020-11-13 17:00:20 · 314 阅读 · 0 评论 -
swift 二叉树三种(前序,中序,后序)遍历方式
class TreeNode: NSObject { var val: Int = 0 var left: TreeNode? var right: TreeNode? override init() {} init(val: Int, left: TreeNode?, right: TreeNode?) { self.val = val self.left = left self.right = right.原创 2020-11-13 16:41:28 · 422 阅读 · 0 评论 -
Swift iPhone基本常量配置
let keywindow = UIApplication.shared.windows.filter { $0.isKeyWindow }.first!var isPhoneX: Bool { if #available(iOS 11.0, *) { return keywindow.safeAreaInsets.bottom > 0 } return false}let isPad = UIDevice.current.userInterface.原创 2020-11-02 18:07:09 · 213 阅读 · 0 评论 -
Swift model 数据解析及转换
enum MKError: Error { case message(String)}struct MKDecoder { public static func decode<T>(_ type: T.Type, param: [String: Any]) throws -> T? where T: Decodable { if param.isEmpty { return nil } gua.原创 2020-11-02 18:03:43 · 2221 阅读 · 0 评论 -
Swift 处理保留一位小数,保留两位小数处理
/// 保留一位小数 class func afterDecimals(value: Int) -> String { let intVal = value / 10000 let doubleVal = value % 10000 let suffixValue = doubleVal / 1000 let newValue = "\(intVal)" + "." + "\(suffixValue)" + "w" .原创 2020-11-02 18:00:31 · 7519 阅读 · 0 评论 -
Swift 类似子弹发射的动画
let msgList = [["item": "连续上班5天","score": 2],["item": "本次排名1名","score": 5],["item": "平均上班时长度10小时","score": 3]] var msgLabels = [UILabel]() override func viewDidLoad() { super.viewDidLoad() if let msgs = self.msgL.原创 2020-11-02 17:53:32 · 254 阅读 · 0 评论 -
swift 使用MAGearRefreshControl控件刷新
class ThridViewController:UIViewController, UITableViewDataSource,UITableViewDelegate,MAGearRefreshDelegate { var _tableView:UITableView! var refreshControlView:MAGearRefreshContro原创 2015-07-17 15:27:27 · 461 阅读 · 0 评论 -
Swift 中UITabBarController使用方法
class AppDelegate:UIResponder,UIApplicationDelegate,UITabBarControllerDelegate { var window:UIWindow? var navgationView1:UINavigationController! var navgationView2:UINavigationControl...原创 2015-07-17 15:07:21 · 657 阅读 · 0 评论 -
swift 中navigationBar颜色设置
overridefunc viewWillAppear(animated: Bool) { super.viewWillAppear(animated) var nav =self.navigationController?.navigationBar nav?.barStyle =UIBarStyle.Black原创 2015-07-17 15:20:03 · 505 阅读 · 0 评论 -
Swift常用的管理沙盒文件的处理方法
常用的管理沙盒文件的方法总结如下: //获取Document路径 class func getDocumentPath() -> String{ let filePaths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) r...原创 2018-09-17 17:26:33 · 2116 阅读 · 1 评论 -
Swift 获取定位地址信息
import CoreLocationtypealias MKPositioningClosure = (String) -> ()class LocationManager: NSObject { public static let shared = LocationManager() var clousre : MKPositioningCl...原创 2018-09-17 17:31:26 · 4003 阅读 · 0 评论 -
Swift 不同样式文字拼接处理
//不同字体大小的文字拼接 func attributedStringWith(_ prefix:String, _ prefixSize:CGFloat,_ suffix:String, _ suffixSize:CGFloat)-> NSAttributedString{ let start = NSMutableAttributedString(str...原创 2018-09-17 17:36:38 · 868 阅读 · 0 评论 -
tableview的Header下拉缩放
func scrollViewDidScroll(scrollView: UIScrollView) { let width = self.view.frame.size.width //图片宽度 let yOffSet = scrollView.contentOffset.y //偏移量 if yOffSet < 0 { //表...原创 2018-09-18 09:39:44 · 701 阅读 · 0 评论 -
获取本机的Mac地址
获取本机的IP地址,记住一定要要桥引入相关的c头文件static public func getMacAddress()->String{ let index = Int32(if_nametoindex("en0")) let bsdData = "en0".dataUsingEncoding(NSUTF8StringEncoding)! va...原创 2018-09-18 09:42:26 · 436 阅读 · 0 评论 -
创建UITabBarController方法
class AppDelegate: UIResponder, UIApplicationDelegate, UITabBarControllerDelegate { var window: UIWindow? var navgationView1: UINavigationController! var navgationView2: UINavigation...原创 2018-09-18 09:53:30 · 412 阅读 · 0 评论 -
16进制颜色设置
class func stringColor(_ colorStr:String) -> UIColor { var color = UIColor.red var cStr : String = colorStr.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines...原创 2018-09-18 09:58:28 · 423 阅读 · 0 评论 -
iOS 设备获取判断
/** * 设备类型 */enum DeviceType: Int { case Iphone4 // iPhone 4S case Iphone5 // iPhone SE case Iphone6 // iPhone 6 case Iphone6P // iPhone 6 Plus ...原创 2018-09-18 11:33:44 · 548 阅读 · 0 评论 -
iOS获取手机设备相关信息
// 获取App相关的信息 let infoDic = Bundle.main.infoDictionary // 获取App的版本号 var appVersion :String { guard let infoDic = infoDic else { return "获取APP版本号失败"...原创 2018-09-19 10:26:10 · 630 阅读 · 0 评论 -
苹果 App Store 审核指南
苹果审核指南中文版:https://developer.apple.com/cn/app-store/review/guidelines/#intellectual-property原创 2019-09-19 00:34:31 · 176 阅读 · 0 评论 -
swift 获取MAC/PI 地址
//获取IP地址func getIFAddresses() -> [String] { var addresses = [String]() // Get list of all interfaces on the local machine: var ifaddr : UnsafeMutablePointer<ifaddrs> = ...原创 2016-04-06 14:25:42 · 4205 阅读 · 0 评论