首页 文章 精选 留言 我的

精选列表

搜索[多模型供给],共10000篇文章
优秀的个人博客,低调大师

【原】Github系列之二:开源 一行代码实现多形式多动画的推送小红点WZLBadge(iOS)

更新日志 V1.2 2015.09.25 1.UITabBarItem badge is supproted; 2.Enable change badge properties when badge is showing; 3.Other code optimization. V1.1 2015.08.12 UIBarButtonItem badge is supported. UIBarButtonItem is kind of NSObject and its displayed view is invisiable. This version makes usage of UIBarButtonItem badge as to UIView. Slight adjustment for code structure to fit future extension. Other code optimization. V1.0 at 2015.06.16 Base functions are completed, which is able to meet most of requirements. 概述 今天我们来实现一个在iOS中让人又爱又恨的推送“小红点”WZLBadge。那什么是badge呢?当后台有数据更新需要让用户知道时,在按钮或者其他控件上显示一个“小红点”提醒用户。注意,这里的“小红点”仅仅是泛指,实际的视图可以天马行空,在这个版本中我们先实现以下几种: 小红点 红底白字“new” 红底白字数字 为了让小红点显示后更加醒目,在这个版本中我又实现了三种不同的状态动画(status animation): 心脏跳动效果(WBadgeAnimTypeScale) 呼吸灯效果(WBadgeAnimTypeBreathe) 横向抖动(WBadgeAnimTypeShake) 静止状态(WBadgeAnimTypeNone, 默认) WZLBadge还有以下优点: 支持横竖屏 支持iOS5~iOS8 允许高度定制化,包括“红点”的背景颜色,文字(字体大小、颜色),位置等 我们还是先看两张示例图片吧: 分析 想要使得实现出来的badge接口调用方便,我采用的是对UIView做category的方式,接口统一为实例方法。通过这种方式,可以给任意的UIView及其子类添加badge,而且接口简单。接口应该类似于这样: 1 [someView showBadgeWithStyle:WBadgeStyleRedDot value:0 animationType:WBadgeAnimTypeShake]; 现实往往是这样的,使用者使用起来越简单,接口提供方就需要做的越多。我们知道,小红点应该具有多个属性,比如大小、背景颜色、文字颜色等。想让badge具有更强的可定制性,就需要开放这些丰富的属性。那么问题来了,category中理论上只能添加方法,无法添加属性。这时候就需要一些运行时runtime方面的技巧了。我们可以在运行时为UIView添加属性,需要使用到的两个runtime api为: 1 2 OBJC_EXPORT id objc_getAssociatedObject(id object , const void *key) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_1); 1 2 OBJC_EXPORT void objc_setAssociatedObject(id object , const void *key, id value, objc_AssociationPolicy policy) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_1); 例如,假设我们现在想给UIView动态添加badgeBgColor属性,用来操纵badge角标的背景色“ 1 2 3 4 - (UIColor *)badgeBgColor //getter { return objc_getAssociatedObject(self, &badgeBgColorKey); } 1 2 3 4 - ( void )setBadgeBgColor:(UIColor *)badgeBgColor //setter { objc_setAssociatedObject( self , &badgeBgColorKey, badgeBgColor, OBJC_ASSOCIATION_RETAIN); } 关于动态添加属性的知识在这里就不具体展开了,想要了解更多的可以参考我的这篇《iOS运行时runtime初探(强制获取并修改私有变量,强制增加及修改私有方法等)》。这个知识点也是本文开源的WZLBadge的核心点,实际上这也是大多数开源工具的常规做法。另外,对于WZLBadge的其他技术细节在这里就不再细述,具体可以到文章末尾处转去Github查看。 使用方法 由于WZLBadge采用对UIView扩展category的方式,因此,所有的UIView及其继承子类(UIControl等)都可以无缝使用,当前版本开放的接口主要有以下几个: 1 2 3 4 /** * show badge with red dot style and WBadgeAnimTypeNone by default. */ - ( void )showBadge; 1 2 3 4 5 6 7 8 /** * showBadge * * @param style WBadgeStyle type * @param value (if 'style' is WBadgeStyleRedDot or WBadgeStyleNew, this value will be ignored. In this case, any value will be ok.) * @param aniType */ - ( void )showBadgeWithStyle:(WBadgeStyle)style value:( NSInteger )value animationType:(WBadgeAnimType)aniType; 1 2 3 4 /** * clear badge */ - ( void )clearBadge; 本文转自编程小翁博客园博客,原文链接:http://www.cnblogs.com/wengzilin/p/4633937.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

用 RAG Fusion 多查询召回融合提升检索

关键参数与边界:①改写 35 个,过多噪声、过少不全;②RRF 的 k 默认 60,调小更看重高排名文档、调大更平滑;③各查询取 top-410 再融合,控制计算量;④相比单查询,Fusion 覆盖多表述,对近义混淆类问题增益明显;⑤与查询分解互补——分解拆子意图、Fusion 扩同义表述;⑥线上增加一次 LLM 调用约 300~800ms,可缓存高频问题的改写结果。落地前建议在固定样本上对比单查询检索与 Fusion 检索的 context_recall 指标,确认提升后再接入。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册