自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Gamin

学习和开发中的笔记

  • 博客(752)
  • 资源 (148)
  • 收藏
  • 关注

原创 [Android]Jetpack Compose加载图标和图片

库,这个库确实包含了大量的图标资源,但是 Android 的构建系统(包括 Gradle 和 Android Studio)使用了一种称为资源清理(resource shrinking)的技术,这可以帮助移除未使用的资源,以减少最终 APK 的大小。在 Android 开发中使用本地矢量图标是一种常见的做法,因为矢量图标(通常保存为 SVG 或 Android 的 XML vector format)具有可缩放性和较小的文件大小。是可选的,分别用于在图片加载时和加载失败时显示的图片。

2024-04-23 22:38:45 409 1

原创 [Android]Jetpack Compose页面跳转和传值

ViewModel在实际的应用开发中,使用单一的来管理所有页面间的数据传递并不是最佳实践。这种做法可能会导致ViewModel过于臃肿和混乱,特别是在大型应用中,这可能会导致维护困难和扩展问题。理想的做法是使用多个ViewModel,每个ViewModel管理特定页面或功能模块的状态和逻辑。页面级 ViewModel:每个页面或每组相关页面可以有自己的ViewModel。这样,页面间的数据传递可以通过共享的更高级别ViewModel来实现,或者通过事件和回调来进行。共享 ViewModel。

2024-04-23 16:13:31 582

原创 [Android]引导页

使用Kotlin + Jetpack Compose创建一个左右滑动的引导页, 效果如图.

2024-04-22 23:18:23 271 1

原创 [Android]Jetpack Compose自定义主题

ColorScheme中的颜色名称是固定的, 如果你想在其中添加一个名称为“textColor”的颜色, 就办不到. 下面, 我们继续给主题添加自定义名称的颜色.这里, 我们定义成使用的方式获取颜色.) {......) {Text(",

2024-04-22 16:28:52 239 1

原创 [Android]使用CompositionLocal隐式传值

CompositionLocal 是定义数据的方式,而 CompositionLocalProvider 是在 Compose UI 树中传递这些数据的工具。二者合作,为 Compose 应用提供了一个强大的状态和数据流管理机制,使得数据可以在组件间按需传递,而无需通过复杂的层级传递或全局状态。这种模式非常适合于主题、语言偏好、UI配置等的全局管理,极大地简化了复杂应用中的数据传递和状态管理问题。CompositionLocalCompositionLocal 是一个特殊的类型,用于定义和存储可以

2024-04-22 11:56:52 763 1

原创 [Android]SharedPreferences可视化管理key-value数据存储

创建一个用于管理的单例工具类,并使用泛型方法来简化对不同类型数据的存取操作,该类提供了泛型的get和set方法来处理各种数据类型。T?T?T?else -> {apply()/// 让 PrefKey 枚举仅包含用户定义的键(key)/// 管理默认值和类型。

2024-04-21 14:05:44 166

原创 [Android]设置尺寸时的单位选择

在使用 Kotlin 和 Jetpack Compose 进行 Android 开发时,选择正确的单位来设置视图尺寸、间距和字体大小是非常重要的。这些单位确保应用在各种设备和屏幕尺寸上都能保持良好的布局和可读性。

2024-04-19 21:47:36 455

原创 [Android]Jetpack Compose设置颜色

Jetpack Compose 提供了一系列预定义的颜色,如Color.RedColor.BlueText(",color = Color.Red // 使用预定义的红色。

2024-04-19 21:36:18 219

原创 [iOS]协议中如何添加属性?

在协议中定义属性主要是通过声明属性的 getter 和/或 setter 方法。这可以通过 Objective-C 的@property声明来完成。这样做的目的是要求任何实现该协议的类都必须实现这些属性的相应访问器方法。// 定义一个只读属性// 定义一个可读写属性@end。

2024-04-12 15:07:50 621

原创 [Android]申请成为Google Play个人开发者

我办理的,是如下这种卡,能够正常支付。网上查询到有种说法,需要不包含银联标的卡全币种卡,不然支付时会遇到“Card type not accepted”问题。登陆Google Play Console后,提示我设备不能使用,最低要求Android 10. 我手机太老无法升级了,需要重新买一台android手机。注意,不是所有全币种卡都能支付成功,办理卡时最好先在网上查询一下对应的卡能否支付。支付完成后,邮箱会收到一封邮件,要求去“验证”个人信息。这种卡,是朋友推荐的,能正常支付开发者费用。

2024-04-09 13:31:58 299 1

原创 [Mac]安装App后“XX已损坏,无法打开“

终端输入sudo xattr -r -d com.apple.quarantine 后将Applications中对应的问题app拖入生成路径,然后执行。“xx.app”已损坏,无法打开。你应该将它移到废纸篓。无法打开“Reveal.app”,因为无法验证开发者。macOS无法验证此App是否包含恶意软件。进入“隐私与安全性”选择“仍要打开”

2024-04-08 17:55:45 406

原创 [iOS]事件处理

触摸事件是最为直观的用户交互形式。iOS 设备的触摸屏能够检测多点触摸,并区分各种手势。处理触摸事件的关键在于理解 UIResponder 类以及其相关的方法。: 所有能够响应用户事件的对象,比如视图(UIView)和视图控制器(UIViewController),都是 UIResponder 的子类。这个类定义了处理触摸事件的方法(如 touchesBegan:withEvent:)。: 表示触摸屏幕的手指。

2024-04-07 19:22:46 692

原创 [iOS]进程-线程-队列-任务

进程是一个执行中的程序的实例。它是系统资源(如 CPU 时间、内存空间、文件描述符等)分配的基本单位。每个进程都运行在其自己的隔离空间内,操作系统负责管理进程的生命周期以及它们对系统资源的使用。在iOS开发中,使用Grand Central Dispatch (GCD)可以创建自定义队列(Custom Queues)。自定义队列可以是串行的也可以是并行的,取决于你的需求。

2024-04-07 15:15:01 902

原创 [Flutter]导入singular_flutter_sdk后运行到Android报错

接入归因之前,flutter项目一起正常。接入归因之后,iOS正常Android有问题。针对 Flutter 的 Singular SDK 集成指南。

2024-04-02 13:59:02 868

原创 Apple ID在App Store登录时提示“此 Apple ID已停用”如何解决?

如图,苹果账号登录App Store时提示“此 Apple ID 已停用”我这个账号,找回密码时,提示“这个 Apple ID 没有被激活”。

2024-04-01 11:36:52 337

原创 Flutter与iOS和Android原生页面交互

平台通道是Flutter中一个强大的机制,它允许Flutter与宿主平台(如Android和iOS)进行数据和任务的双向通信。这种机制解决了Flutter无法直接调用平台特定API的限制,使得Flutter应用能够实现原生平台的功能。我们将设置一个名为的平台通道,这个通道将用于Flutter与原生平台(iOS和Android)之间的通信。

2024-03-31 23:56:44 1827

原创 [Flutter]页面跳转和传值

命名路由是一种用于管理页面导航的技术,它允许你为每个页面分配一个唯一的名称,并通过这些名称在应用程序中进行页面之间的导航。命名路由,由一对字符串(路由名称)和对应的屏幕(或称为页面/视图)组成。命名路由的好处提高代码可维护性命名路由使得路由和它们对应的屏幕解耦,这让查找和修改特定路由相关的代码变得更加容易。简化路由管理当应用的结构变得更为复杂时,使用命名路由可以帮助集中管理路由,而不是在代码中散布大量的和。配置命名路由我们可以在的routes属性中定义所有的命名路由。routes。

2024-03-31 18:49:52 1472 1

原创 [Flutter]打包IPA

flutter build ios构建的Runner.app有什么用?不用flutter构建,在Xcode中是可以独立进行构建运行和打包发布的。

2024-03-31 00:17:54 1246

原创 [Flutter]环境判断

常量kReleaseMode,它会根据你的应用是以什么模式编译的来获取值。bool.fromEnvironment会从Dart编译时的环境变量中获取值。对于'dart.vm.product'这个特定的环境变量,它是由Dart VM设置的,用来标明当前是否在产品环境下运行。当应用以Release模式编译时(例如运行flutter build apk或flutter build ios),kReleaseMode会被设置为true。

2024-03-28 18:22:03 1202

原创 [Android]Google Play内购产品购买报错The item you were attempting to purchase could not be found.

真机或模拟器,虽然在Google Play登录了测试账号,测试账号也加入了“许可测试”和“内部测试”之中。但是,测试人员还没在真机或模拟器上同意接受测试邀请,所以报上面的错误。

2024-03-28 12:32:22 164

原创 [Android]创建Google Play内购aab白包

开发时需要调试Google内购,需要先往Google商店传一个白包上去。确定包名,然后进行内购产品创建。

2024-03-26 17:35:39 1015

原创 [Android]模拟器登录Google Play失败

10.0.2.4 / 10.0.2.5 / 10.0.2.6 可选的第二个、第三个和第四个 DNS 服务器(如果有)网络配置好之后,打开Android模拟器,进入网络设置中,在Android WIFI配置代理。10.0.2.2 主机环回接口的特殊别名(即开发机器上的 127.0.0.1)国内开发,要登录Google Play调试内购肯定是要合理上网的。10.0.2.15 所模拟设备的网络/以太网接口。127.0.0.1 所模拟设备的环回接口。这样设置后,才会走梯子的流量网络正常。端口设为你梯子的代理端口。

2024-03-26 15:10:44 901

原创 [Flutter]运行到Android报错You are applying Flutter‘s app_plugin_loader Gradle plugin imperatively using..

应该在项目搭建时就这样操作,不然等项目开发后,自定义配置比较多时就比较麻烦了。不过自动修复的优势也比较明显,对新手比较友好,比如我手动修复了一半天,运行时还是各种报错。在删除 android目录之前,确保备份任何重要的更改,如 AndroidManifest.xml 的更改、Gradle 配置更改、本地依赖等。同步gradle时若网络中断,会导致缓存文件损坏或下载不完整,需要执行如下命令清理gradle缓存后重新运行。从 Flutter 3.16 开始,使用。重新运行时,会重新同步gradle。

2024-03-22 15:53:19 1166

原创 [Flutter]打包APK报错The binary version of its metadata is 1.9.0, expected version is 1.6.0.

flutter run运行项目没任何问题,但打包时终端会报错,最后打包还能成功。虽然能打包,不过这个错误警告还是要处理。│ [!在stackoverflow上有这个问题。

2024-03-22 15:02:49 1066

原创 [Flutter]自定义等待转圈和Toast提示

onlyIndicator, // 仅一个转圈等待roundedRectangle, // 添加一个圆角矩形当背景maskingOperation, // 添加一个背景蒙层, 阻止用户操作.remove();});Key?

2024-03-08 14:32:20 499

原创 [Flutter]使用Provider进行状态管理

如果你有多个不同的状态需要管理,你通常会为每种状态创建不同的模型。例如,如果你在一个widget中使用这个模型,你可能需要使用。是Flutter中一个非常流行的状态管理工具,它可以帮助开发者更有效地管理Widget树中的数据。但是,如果你的状态数据非常紧密相关,并且它们通常一起改变,那么将它们放在同一个模型中也是有意义的。通过这种方式,你可以将应用的不同部分的状态管理分离开来,从而使你的代码更加模块化和可维护。更进一步,比如异步从网络获取状态,也是类似的。在你的应用中,你需要在一个合适的位置(如。

2024-03-08 11:17:58 793

原创 [Flutter]TextButton自定义样式

/ 按钮点击事件},backgroundColor: MaterialStateProperty.all(Colors.blue), // 设置背景颜色padding: MaterialStateProperty.all(EdgeInsets.zero), // 设置内边距为零borderRadius: BorderRadius.circular(10.0), // 设置圆角半径),),

2024-02-29 21:41:21 748

原创 [Flutter]用16进制颜色字符串初始化Color

【代码】[Flutter]用16进制颜色字符串初始化Color。

2024-02-29 14:32:56 395

原创 [Flutter]VSCode编辑器中的白色垂直线如何去掉

此外,一些项目可能会有自己的.editorconfig文件,这个文件同样可以定义一行代码的最大长度。如果你的项目中有.editorconfig文件,它可能会覆盖VSCode设置中的规则。在Visual Studio Code(VSCode)中,您看到的白色竖线可能是编辑器的“边界线”(也称为“裁剪边界”或“规则指南”),它用来指示一行代码的推荐最大长度。这条线通常是不可拖动的,但是你可以通过VSCode的设置来改变它的位置或者完全禁用它。但实际上,这个长度是可配置的。

2024-02-29 11:50:56 748

原创 [Flutter]倒计时和计时器

这个类不是线程安全的,因为Dart本身是单线程的,但是如果你使用它在Flutter的Isolates(类似于线程)中,请确保你正确地管理状态。此外,如果你的应用需要更复杂的定时器调度,你可能需要考虑其他的包或者解决方案。这个类可以提供启动、暂停、重启和关闭定时器的方法,并且确保定时完成后自动释放定时器资源。这样,你可以在任何地方订阅计时器的变化,并实现回调更新。类提供了更灵活的方式来实现单次或重复的延迟执行。可以在动画帧更新时执行代码,这可以用来实现延迟。方法用于设置定时器,接收延迟时间和要执行的动作。

2024-02-28 23:43:09 850

原创 [Flutter]shared_preferences基本用法以及可视化管理存储的key和value类型

是一个Flutter插件,它提供了一种简单的方式来在应用程序中存储和获取持久化的键值对数据。它可以用于存储应用程序的配置信息、用户偏好设置、登录状态等。使用插件,你可以在应用程序中轻松地保存和读取数据,而无需处理底层的持久化细节。它基于平台的本地存储机制,例如Android中的SharedPreferences和iOS中的NSUserDefaults。

2024-02-28 23:08:27 682

原创 [Flutter]设置应用包名、名称、版本号、最低支持版本、Icon、启动页以及环境判断、平台判断和打包

运行上述命令后,flutter_launcher_icons 将根据你指定的源图标文件 app_icon.png 自动生成需要的各种尺寸的图标,并替换 iOS 和 Android 项目中的现有图标。在Flutter开发中,修改应用程序的包名(也称作Application ID)涉及几个步骤,因为包名是在项目的Android和iOS平台代码中分别配置的。这些检查可以帮助你为不同的平台编写特定的代码,例如使用平台特有的插件或者调整UI来匹配用户的期望。的值是一个字符串,用于提供给用户一个有意义的应用程序名称。

2024-02-27 23:21:12 3266

原创 [SwiftUI]启动页LaunchScreen.storyboard中适配状态栏加安全区域的高度

这就意味着,在LaunchScreen.storyboard中若是相对Safe Area约束图片的话,我们会丢失一个20px的状态栏高度。如下图,我有一个需求。要求从启动页切换到引导页时,这两张相同的图片的过渡要无缝衔接,就是要求两图的位置约束一摸一样。在iPhone X之前的设备,会丢失一个状态栏的高度20px,会导致启动页上这张图片会比引导页上的图片偏上20px.如下图,为了解决上面的问题,我们还需要将UIView的顶部约束添加为20px. 图中,红色区域部分将会在iPhone X以下的设备消失。

2024-02-20 23:26:04 436

原创 [Swift]定义一个全局的可管理的计时器

这种全局计时器,我们经常会用到。比如需要延迟10秒弹出系统好评弹窗,但又不希望在“订阅页”弹窗。这时我们进入“订阅页”时就要暂停定时器,离开“订阅页”时再恢复计时。定义一个全局计时器,延迟执行操作。可以对计时器进行全局控制,能手动控制暂停/重启/停止,并在计时结束后释放掉计时器。

2024-02-20 22:00:26 431

原创 [SwiftUI]自定义下划线

系统有一个下划线修饰,但最低只支持到iOS16。下面自定义一个下划线,以便在iOS14上使用。

2024-02-20 15:10:29 242

原创 [SwiftUI]使用Path绘制各种图形

用直线绘制一个矩形的三条边,然后最后一条边用圆形曲线去绘制,然后填充整个图形。// 定义矩形的起点// 绘制矩形的顶部边// 绘制矩形的右侧边// 绘制矩形的底部边(只绘制一部分,为了圆弧留出空间)// 添加圆形曲线作为最后一条边// 圆心最右测为0度或360度,最左侧为180度,最下侧为90度,最上侧为270度或-90度// clockwise true:逆时针绘制 false:顺时针绘制// 回到起点闭合路径.fill(Color.blue) // 填充路径。

2024-02-02 13:51:18 837

原创 [SwiftUI]本地通知

使用本地通知,在开关开启时请求权限,若通知权限是拒绝状态就弹窗通知去设置开启。先创建一个通知管理器,请求通知权限、检查通知权限 和 创建通知内容。状态为true时,随后调度通知,只有在权限开启时APP才能收到通知。注意,APP进入后台或者杀掉APP都能收到推送通知信息。

2024-02-02 12:29:10 406

原创 [SwiftUI]APP评分

以前都是直接使用SKStoreReviewController.requestReview(),不过现在报警告了。虽然警告,但在高版本上现在使用还是有效的,就怕以后突然某个版本完全失效了。方法已经被弃用,苹果推荐开发者使用新的 App Store Review API 来提示用户进行评分。新的 API 要求你在。从 iOS 14 开始,

2024-02-02 11:20:17 279

原创 [SwiftUI]使用UIActivityViewController来实现系统分享功能

来实现系统分享功能。由于 SwiftUI 目前没有直接提供类似的视图或修饰符,你需要使用。协议来创建一个可以在 SwiftUI 视图中使用的。接下来,在你的 SwiftUI 视图中,你可以使用。在 SwiftUI 中,你可以使用。注意,你要分享的内容应该是能够被。首先,你需要创建一个遵循。协议的结构体,用于包装。

2024-02-02 10:39:56 285

原创 [SwiftUI]页面跳转

你可以创建一个自定义的触发器,例如一个自定义的视图,当点击时,展示 Sheet。}) {自定义TabView的样式,比如修改标签栏的背景色、字体颜色等。通过直接访问UITabBar的appearance方法来改变标签栏的背景色。这种方法适用于更改全局的样式,但需要注意这种更改影响到整个 app 的TabView样式。init() {// 自定义 TabBar 的样式TabView {Text("首页").tabItem {Text("首页")Text("设置").tabItem {

2024-01-28 16:48:20 1417

GASuspendViewDemo

一个添加在window上悬浮视图。 可固定,可拖动,还可以限制一个拖动范围。 可限定在只某些页面展示。

2023-03-26

安卓手机与Mac电脑文件互传AndroidFileTransfer

安卓手机与Mac电脑文件互传AndroidFileTransfer

2022-12-02

iOS使用MonkeyDev完成Hook

使用七猫举个例,去移除小说阅读页底部广告和章节之间的广告。

2022-11-24

charles-proxy-4.2.7长期版

charles-proxy-4.2.7长期版-V-

2022-11-20

GAEmptyDataDemo.zip

GAEmptyDataDemo

2021-10-22

GAGradientRampDemo.zip

swift绘制渐变色

2021-08-05

GAAppUpdate.zip

Swift app版本更新

2021-07-29

stdc++.6.0.9.zip

Xcode10:library not found for -lstdc++.6.0.9 临时解决

2021-04-03

GATextViewTestDemo.zip

Cell随着输入文字的换行自动增高 .

2020-10-26

GASimpleCalendar2.zip

弄的一个简单的日历,可以展开完全展示日历,也可以收回只展示已选择那一行。另外添加了选择器切换月份,还可以在列表中跨月选择切换日期。

2020-10-15

GAAVPlayerViewControllerDemo.zip

一个简单的AVPlayerViewController demo,通过控制showsPlaybackControls确定使用系统播放管理样式还是自定义播放器样式。

2020-01-22

GAVideoRecordDemo.zip

一个简单的添加视频的demo,包含从相册选择视频和直接录制视频,然后将mov转为mp4. .

2020-01-20

GACallSoundDemo.zip

音视频聊天时,设置自定义来电铃声,并会根据震动模式设置震动 。

2020-01-06

UIViewController+Present.zip

UIViewController+Present,这个分类是用来适配iOS13之后UIViewController模态弹出问题的. 使用这种方式就不用去项目中挨个找模态弹出了.

2019-11-01

UIButton+Badge.zip

UIButton+Badge,通过运行时的方式对UIButton拓展了标签展示功能 .

2019-11-01

NSString+FileSize.zip

NSString+FileSize,获取到沙盒文件或文件夹路径时,可以通过这个NSString的拓展调用fileSize方法得到文件或文件夹的大小。

2019-10-31

EmptyDataSet-demo.zip

UIScrollView+EmptyDataSet,是因为大佬是使用的UIScrollView的category扩展的功能,使用时调用非常清晰流畅.

2019-10-30

UIView+AZGradient.zip

@property CGPoint az_startPoint; @property CGPoint az_endPoint; + (UIView *_Nullable)az_gradientViewWithColors:(NSArray<UIColor *> *_Nullable)colors locations:(NSArray<NSNumber *> *_Nullable)locations startPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint; - (void)az_setGradientBackgroundWithColors:(NSArray<UIColor *> *_Nullable)colors locations:(NSArray<NSNumber *> *_Nullable)locations startPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint; @end

2019-10-28

UIView+BorderLine.zip

@interface UIView (BorderLine) /** 增加边框 @param borderWidth 边框宽度 @param borderColor 边框颜色 @param cornerRadius 边框圆角 */ - (void)addBorderLineWithBorderWidth:(CGFloat)borderWidth borderColor:(UIColor *)borderColor cornerRadius:(CGFloat)cornerRadius; /** 增加边框 @param borderWidth 边框宽度 @param borderColor 边框颜色 @param cornerRadius 边框圆角 @param borderType 边框类型 */ - (void)addBorderLineWithBorderWidth:(CGFloat)borderWidth borderColor:(UIColor *)borderColor cornerRadius:(CGFloat)cornerRadius borderType:(UIBorderSideType)borderType; @end

2019-10-26

UITextView+Placeholder.zip

@import UIKit; FOUNDATION_EXPORT double UITextView_PlaceholderVersionNumber; FOUNDATION_EXPORT const unsigned char UITextView_PlaceholderVersionString[]; @interface UITextView (Placeholder) /* 占位文字 */ @property (nonatomic, copy) NSString *placeholder; /* 占位文字颜色 */ @property (nonatomic, strong) UIColor *placeholderColor; @end

2019-10-26

GAIPADemo 2.zip

使用第三方XYIAPKit工具,写了一个简单内购demo, 测试了一下能完美适用于各种购买 。

2019-10-15

价格选择.zip

一个拖动滑块选择minPrice和maxPrice的简单demo [以上]

2019-07-29

GAEditDemo.zip

简单的一个demo,获取点击的点在屏幕上的坐标,获取某个view在屏幕上的位置。 UIWindow *window = [[[UIApplication sharedApplication] delegate] window]; CGRect rect = [tempBut convertRect:tempBut.bounds toView:window];

2019-07-16

VoicePlayerDemo.zip

iOS开发的一个简单的音频录制和播放demo,支持对安卓录制格式(amr)的播放。

2019-07-15

GAEditTextDemo.zip

一个简单的使用ZSSRichTextEditor的一个用于iOS的漂亮的富文本编辑器。它包含了所有的标准编辑器工具

2019-07-11

GAHomeDemo.zip

就是一个简单结构的项目的搭建demo。 首页只是通过下面方法切换控制器: - (void)transitionFromViewController:(UIViewController *)fromViewController toViewController:(UIViewController *)toViewController duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^ __nullable)(void))animations completion

2019-07-10

PhotoDemo图片选择器.zip

demo功能包含自定义图片选择器(GACustomSelectPIC)、保存图片到自定义相册、拍照完成可自由裁剪(PureCamera)

2019-05-28

简单KVO Demo

只是一个iOS开发简单使用KVO的demo,只是备份用不着下载。 ps:上传错了,后面删除。

2019-02-12

上传到阿里云OSS的图片处理

上传到阿里云OSS的图片处理,可查看官网文档:https://help.aliyun.com/document_detail/44688.html?spm=a2c4g.11186623.6.1179.4d1f53b3WU0oXy

2019-01-23

选择开始时间和结束时间

一个分段选择开始时间和结束时间的demo,会现在结束时间的选择在开始时间之后。

2019-01-21

WKWebViewDemo

这是一个WKWebView的简单使用demo,包含于H5的一些简单交互。

2019-01-20

自定义图片选择器

demo功能包含自定义图片选择器(GACustomSelectPIC)、保存图片到自定义相册、拍照完成可自由裁剪(PureCamera)

2018-10-31

自定义相机

拍照购demo(自定义相机+结果页动画),类似京东和淘宝APP上的图片搜索...

2018-10-25

自定义相机拍照购

拍照购demo(自定义相机+结果页动画),类似京东和淘宝APP上的图片搜索...

2018-10-23

从控制器中分离出View

方法: objc_setAssociatedObject(id _Nonnull object, const void * _Nonnull key, id _Nullable value, objc_AssociationPolicy policy) 参数: object 关联者 key key与value是一一对应的关系,必须确保key全局唯一。 value 关联的对象 policy 关联策略: 方法: objc_getAssociatedObject(id _Nonnull object, const void * _Nonnull key)

2018-10-10

MVVM模式简单demo

这是一个是MVVM模式实现的在tableview上分层选择省市区的demo

2018-09-29

12.0 (16A366)

iOS开发真机升级12.0系统后,解决xcode未升级之前无法连接手机调试的问题。 解压后放如目录: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

2018-09-28

简单使用UIMenuController

简单使用UIMenuController给UILabel添加复制、粘贴、分享功能

2018-08-27

AutoLayoutDemo

一个简单demo,SDAutoLayout的简单使用....

2018-08-27

MasonryDemo

使用Masonry纯代码约束视图 mas_makeConstraints() mas_remakeConstraints() mas_updateConstraints() equalTo() mas_equalTo() width() mas_width()

2018-07-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除