- 博客(43)
- 资源 (14)
- 收藏
- 关注
原创 HarmonyOS Next 状态管理:Type 装饰器实践
Type主要用于标记类属性的类型,以确保在序列化和反序列化过程中不会丢失属性的类型信息。它通常与和结合使用,用于实现复杂对象的持久化。
2025-03-17 10:12:30
415
原创 HarmonyOS Next 状态管理:Computed 装饰器实践
Computed是 ArkTS 中的一个装饰器,用于定义计算属性。它的主要作用是优化性能,避免在 UI 中多次重复计算相同的值。当依赖的状态变量发生变化时,@Computed会自动重新计算,但只会计算一次,从而减少不必要的性能开销。
2025-03-17 10:12:00
1047
原创 HarmonyOS Next 状态管理:Monitor 装饰器实践
Monitor是鸿蒙开发中用于增强状态管理框架对状态变量变化监听能力的一个装饰器。它能够监听状态变量的变化,并提供比@Watch更强大的功能,包括深度监听嵌套对象、数组等复杂数据结构的变化,并能够获取变化前后的值。@Monitor。
2025-03-16 02:02:20
772
原创 HarmonyOS Next 状态管理:Provider和Consumer 装饰器实践
在本系列之前介绍的状态修饰器中,无法直接实现跨层级的数据传递。而本次介绍的@Provider和@Consumer修饰器则能够实现跨组件的数据传递,并且支持双向数据绑定。@Provider和@Consumer提供了一种灵活的方式来实现跨组件的数据传递和双向绑定。通过合理使用这些修饰器,可以显著提升组件的复用性和可维护性。在实际开发中,建议根据具体场景选择合适的数据传递方式,并结合和@Trace来实现更复杂的状态管理需求。
2025-03-14 11:03:27
704
原创 HarmonyOS Next 状态管理:ObserverV2和Trace 装饰器实践
在组件化开发中,我们常常需要对类对象的属性进行观测,以便在属性变化时自动更新 UI。和@Trace正是为此设计的修饰器。:用于装饰类,表明该类是可被观察的。单独使用无效,必须与@Trace配合使用。@Trace:用于装饰类的属性,表示该属性可以被精确跟踪和观察。@Trace只能在被装饰的类中使用。通过和@Trace修饰器,我们可以实现对类属性的精确观测,并在属性变化时自动更新 UI。搭配使用必须与@Trace搭配使用。属性观测:只有被@Trace装饰的属性在变化时才会触发 UI 刷新。嵌套与继承。
2025-03-14 11:02:40
475
原创 HarmonyOS Next 状态管理:!! 状态修饰器实践
!是一种语法糖,用于实现父子组件之间的双向数据绑定。它主要用于初始化子组件中的@Param和@Event,其中@Event的命名规则为$ + @Param 属性名。双向绑定:当父子组件中使用!!语法时,父组件的数据变化会同步到子组件,子组件的数据变化也会同步到父组件。单向绑定:如果父组件未使用!!语法,则数据流是单向的,父组件的变化不会同步到子组件。双向绑定!!语法糖简化了父子组件之间的双向数据绑定,提升了开发效率。单向绑定:未使用!!时,数据流是单向的,子组件无法将数据变化同步回父组件。
2025-03-14 11:01:47
927
原创 HarmonyOS Next 状态管理:Event 装饰器实践
在日常开发中,父子组件之间的数据同步是一个常见需求。虽然可以通过@Param结合回调函数实现父子组件的同步刷新,但这种方式较为繁琐。为此,@Event修饰器应运而生,专门用于简化事件传递和数据同步。事件传递@Event提供了一种简洁的方式,用于在父子组件之间传递事件并同步数据。灵活性@Event支持修饰可选回调方法,增强了代码的灵活性。异步更新:父组件状态的更新是立即生效的,但子组件的更新是异步的,开发者需注意数据同步的时机。@Event。
2025-03-14 11:00:59
272
原创 HarmonyOS Next 状态管理:Once 装饰器实践
Once装饰器用于修饰变量,确保该变量仅在初始化时接受一次外部传入的值。初始化完成后,即使数据源发生变化,@Once修饰的变量也不会’随之更新’。
2025-03-14 10:59:21
495
原创 HarmonyOS Next 状态管理:Param 装饰器实践
Param修饰器用于修饰组件中的变量,支持从外部传入或自身初始化。它使得父子组件之间的数据传递更加灵活,当父组件的数据发生变化时,子组件中关联@Param的变量也会同步更新,从而触发 UI 刷新。@Param修饰器在父子组件数据传递中起到了关键作用,支持基础类型、容器类型、实例对象等多种数据类型的绑定。通过合理使用@Param,可以实现父子组件之间的数据同步和 UI 更新。
2025-03-14 10:58:27
280
原创 HarmonyOS Next 状态管理:Local 装饰器实践
在 ArkTS 的 V1 版本中, 用于修饰状态变量。当状态变量发生变化时,依赖该变量的组件会自动更新。然而, 存在一个明显的局限性:状态变量可以从外部初始化,但组件内部无法感知到外部初始化的变化。以下是一个示例:@Entry @Component struct Index { @State message: string = ‘Hello World’;build() { Column({ space: 10 }) { ChildCompon
2025-03-14 10:56:21
660
原创 iOS 自定义滑动返回和解决连续多次push,pop引起的crash问题
UINavigationController的滑动返回作为iOS7的新特性被引入,但是只有在滑动视图的左边缘的时,才可以体验这样的交互。如果,想要滑动视图的任意位置,想要体验这样的交互,就需要自己动手处理了,后者使用第三方库。 另外,最近的程序中遇到这样的一个问题:push到一个钱包界面,这个界面请求钱包的内容。这个界面比较敏感,涉及钱财,采取了一些安全措施。其中的一个就是客户端距离上
2015-03-01 18:37:29
6254
原创 zbar适配arm64
苹果要求程序必须适配arm64了。现在程序中使用了二维码第三方库,适配之后出现了一个蓝色的聚焦框,以前非arm64的时候是正常的,所以猜想是库的问题。多方查找,也没有找到一个好用的,最后还是github给力。现在搬运过来,供大家使用。 另外,也说一下,怎么查看静态库适配的架构有哪些? 这里,需要使用的命令时lipo -info xxx.a xxx.a表示静态
2015-02-25 15:55:31
1168
转载 Cocoapods在OS X Yosemite上报错的解决方法
今天升级了Mac OS X 10.10-Yosemite以后运行pod install遇到下面的错误: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:in 'mkdir': Permission denied - /Library/Ruby/Gems/2.0.
2014-10-18 17:30:11
1446
原创 Xcode target specifies product type 'com.apple.product-type.bundle.unit-test'
最近打开Xcode编译、运行程序,虽然都success,
2014-10-16 10:13:20
4913
原创 UIScollview(包含离屏部分)转换为UIImage
最近有这么一个需求:需要将UIScrollview上全部内容转换为一张图片,然后分享第三方平台。这就涉及到屏幕之外的部分也要成为图片的一部分。用tableview作为例子,scrollview也同样使用。总结一下学到的:核心代码: UIGraphicsBeginImageContextWithOptions(self.tableView.contentSize, NO, 0.0);
2014-03-11 23:09:54
860
原创 iOS 实现UITextView的placeholder
UIPlaceholderTextView.h@interface UIPlaceholderTextView : UITextView@property (nonatomic, strong) NSString *placeholder;@property (nonatomic, strong) UIColor *placeholderColor;UIPlaceholderTe
2014-02-15 14:13:41
1263
原创 iOS 升级程序中已有的CoreData
也许在开发某个应用的1.0版本时,使用了CoreData。然后在2.0版本的时候,需要对CoreData做些修改。可能是增加一个实体(NSEnttity),可能是增加实体的属性(Property),或者创建删除实体间的关系(Relationship)等等。都需要对CoreData的结构做出修改。总结一下这部分知识。
2013-12-04 00:05:17
1234
转载 Core Text Tutorial
Author: Eva Diaz-Santana@evdiasanIntroductionAs promised in one of the previous articles on Core Graphics, I want to talk about the wonderful Core Text. Consider the topic as a followup of the p
2013-07-29 19:27:40
1713
转载 利用预渲染加速iOS设备的图像显示
最近在做一个UITableView的例子,发现滚动时的性能还不错。但来回滚动时,第一次显示的图像不如再次显示的图像流畅,出现前会有稍许的停顿感。于是我猜想显示过的图像肯定是被缓存起来了,查了下文档后发现果然如此。后来在《Improving Image Drawing Performance on iOS》一文中找到了一些提示:原来在显示图像时,解压和重采样会消耗很多CPU时间;而如果预
2013-07-28 23:58:15
785
原创 iOS CoreImage之脸部识别
CoreImage一个好玩的地方就是它可以检测出一张人物图片上左眼、右眼以及嘴的详细位置。请注意这里使用的是“检测”而不是“识别”。CoreImage目前还没有办法识别人脸仅仅是检测出人脸的眼嘴位置。它的使用也是比较方便快捷的。核心代码如下: UIImage *image = [UIImage imageNamed:@"baby.jpg"]; CIImage *begingI
2013-07-02 01:14:14
2279
原创 iOS CoreImage学习
CoreImage带来地处理图片效果是iOS5强大功能之一,它可以处理图片的各种效果,什么饱和度啊,旋转变形啊,色彩啊等等。在使用CoreImage之前要导入CoreImage.framework框架。如果只是进行Mac开发的话,只需要导入QuartzCore.framework框架,这其中已经包含了CoreImage.framework框架;而如果是iOS开发则必须导入CoreImage.f
2013-07-02 00:22:26
3873
转载 layoutSubviews 详解
ios layout机制相关方法- (CGSize)sizeThatFits:(CGSize)size- (void)sizeToFit——————-- (void)layoutSubviews- (void)layoutIfNeeded- (void)setNeedsLayout——————–- (void)
2013-06-26 23:37:25
959
转载 iOS NSPredicate 查询、搜索
简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。最常用到的函数+ (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat, ...;1.比较运算符 > 、= 、例:@"number >= 99" 2.范围运算符:IN 、BE
2013-06-24 23:34:23
810
原创 iOS 网络链接的判断
运行某个功能前,可能需要知道是否能链接网络。总结一下学习到的方法:-(BOOL)isExistenceNetwork{ BOOL isExistenceNetwork; Reachability *reach = [Reachability reachabilityWithHostName:@"http://www.google.com"
2013-05-31 23:25:16
761
原创 iOS 合并使用多个Storyboard
storyboard用起来很是方便。在开发中很有可能是多个人创建了多个storyboard。但最后,总是要把所有的storyboard“合并”在一起。总结一下自己的想法,不知道有没有其他的方式“合并”。 创建一个使用storyboard和ARC的single view application工程。然后common + N -> User Interface -> Storyboar
2013-05-29 23:24:12
4688
转载 【苹果经验】Wifi密码修改了,如何修改MacBook pro(air)已经记住的密码?
当你以前连接过的Wifi修改了密码,你的苹果笔记本就没有办法再连接上该无线网络了。这时,你得重新连接输入新的密码。可是它就是不跳出输入新密码得窗口让你来输!新手可真是要急煞宁得。。我也遇到这个问题了,但是我现在终于搞定了,现在特写此博文分享。。。1、打开Finder——>应用程序——>实用工具,打开里面的“钥匙串访问”程序。2、然后在窗口的右上角输入SS
2013-05-23 11:47:49
2699
原创 iOS 使用工具生成类图
毕业设计进入文档部分了,需要生成类图。不想手写,看看有没有能自动生成,最好能像vs那样,编译器就可以搞定的。 找了一下,还真有一款软件可以做到。 介绍一下,OmniGraffle。生成类图太方便了。 步骤:运行OmniGraffle->文件->打开->选择你的xcodeproject。
2013-05-11 15:21:14
4734
原创 iOS 将数据写到csv文件
有这么一个需求,需要将程序中的数据信息写到csv文件中,可以使用excel等软件方便浏览。总结以下实现过程。使用到CoreData,界面布局如下:在.m文件中声明私有方法:- (void)createFile:(NSString *)fileName;- (void)exportCSV:(NSString *)fileName;- (NSArray *)queryStu
2013-04-30 00:53:04
3797
原创 iOS 如何删除UINavigationBar上的UIBarButton
遇到一个很纠结的问题。xib文件中拖拽了一个UINavigationBar,在其上放了一个UIBarButtonItem,现在想删除或者隐藏这个UIBarButtonItem。尝试了一些方法,但都不能达到效果。 尝试方法一: NSMutableArray *items = [[self.navBar subviews] mutableCopy];
2013-04-29 23:16:17
1673
原创 iOS 使用NSArray(NSMutableArray)接受plist文件数据
默认的情况下,要读取plist文件的数据是用NSDictionary或者其子类NSMutableDictionary。但有时这样读取很不方便,更希望是用NSArray或者其子类NSMutableArray接受plist文件数据。那可以进行以下操作,现总结如下: 创建一个plist文件,名字是student。右键add row 加入行。选中plist文件,右键 》 open
2013-04-29 22:15:24
2729
转载 如何使用github
留下学习。安装Msysgit下一步同意GNU协议选择安装位置,下一步选择TrueType Front,下一步不创建启动文件夹默认Git Bash,就可以了选择使用OpenSSH选择默认的Checkout Style安装完成了配
2013-04-28 22:42:36
905
原创 Mac OS显示隐藏文件
默认的情况是 Mac OS不显示隐藏文件的,可以使用Mac终端输入命令来显示隐藏文件。显示文件:defaults write com.apple.finder AppleShowAllFiles -bool true隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool false
2013-04-08 16:08:24
882
转载 iOS 画图总结
0 CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文1 CGContextMoveToPoint 开始画线2 CGContextAddLineToPoint 画直线4 CGContextAddEllipseInRect 画一椭圆4 CGContextSetLineCap 设置线条终点形状4 CGConte
2013-03-26 16:15:12
714
原创 开始学习使用Game Maker
一直想学习游戏开发,但不知道从哪里入门。偶然的机会,看见一篇文章提及Game Maker,说是可以作为游戏入门去学习。遂,网上找了些相关资料,分享一下。所有资料仅限于学习之用,请尊重作者的劳动成果,购买正版书籍。 Game Maker's Apprentice The Game Maker's Companion
2013-03-25 16:10:26
1549
转载 两分钟学会在GitHub托管代码
本篇博客针对不会Git的小童鞋,大神们可以绕过,错误之处谢谢指正;关于GitHub的强大此处不在说明,知道GitHub也有一段时间了,但是一直苦于不会使用。本篇文章介绍的是如何将工程代码托管到上面;如果你还没注册GitHub账号请到https://github.com/上注册如果你已经注册GitHub账号,在你的电脑上安装了GitHub,而一直还没上传过代码1.打开浏览器登
2013-03-13 17:30:22
682
原创 自己创建CoreData所需要的相应类
以前使用CoreData都是选择附带有CoreData选项的模板,自己并不知道具体怎么创建。虽然,这样可以节省自己写代码的时间,但是,有些模板是没有附带使用CoreData的选项的,这就不得不要自己去创建了。创建一个工程,命名为CoreDataDemo,选择Single View Application模板。接下来需要导入CoreData.framework框架,然后在CoreDataDemo
2013-03-11 22:42:48
928
iOS版本 armv7 armv7s arm64 i386 x86_64架构的zbar
2015-02-25
Storyboard_unwindDemo
2014-04-09
storyboard_unwindSegue
2014-04-09
CoreDataUpdateDemo
2013-12-04
StoryboardDemo
2013-05-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人