Releases: Tencent/QMUI_iOS
Releases · Tencent/QMUI_iOS
2.9.0
新增功能
- 增加
QMUIScrollAnimator
用于实现与UIScrollView
滚动相关的动画交互。 - 增加
QMUINavigationBarScrollingAnimator
用于实现边滚动边改变UINavigationBar
的动画效果。
- 增加
QMUINavigationBarScrollingSnapAnimator
用于实现滚动到某个临界点时触发UINavigationBar
动画的效果。
UINavigationBar (QMUI)
增加qmui_backgroundView
、qmui_backgroundContentView
、qmui_shadowImageView
用于访问私有的 subview。UITabBar (QMUI)
增加qmui_backgroundView
、qmui_shadowImageView
用于访问私有的 subview。UIView (QMUI_Border)
增加qmui_borderPosition
用于控制 border 绘制的位置,支持 inside、center、outside。
UIView (QMUI)
增加qmui_tintColorDidChangeBlock
用于监听tintColor
变化。UIView (QMUI)
增加qmui_hitTestBlock
用于修改点击事件的传递。QMUIHelper
增加executeAnimationBlock:completionBlock:
方法用于某些系统自带的动画完成时的回调。- 保护系统的
[UIImage resizableImageWithCapInsets:]
方法在传进来的capInsets
水平/垂直的和大于等于图片本身大小会在 render 时产生的 crash。 UINavigationController (QMUI)
对系统的 push/pop 系列方法增加 completion 版本的接口,便于在动画完成后做一些事情。CGRectSetWidth()
、CGRectSetHeight()
增加对传进来的负数的宽高值的保护,避免产生错误的 rect。
会带来 QMUI 新旧版本兼容问题的更新
QMUIImagePickerCollectionViewCell
增加对收藏资源的标志,同时去掉视频资源的标志,只展示视频时长。QMUIHelper
移除方法actionSpringAnimationForView:
。
如何适配新版
- 全局搜索用到
[QMUIImagePickerCollectionViewCell videoMarkImage]
的地方,将其删除。 - 全局搜索用到
[QMUIImagePickerCollectionViewCell videoMarkImageViewMargins]
的地方,将其删除。 - 全局搜索用到
[QMUIImagePickerCollectionViewCell videoBottomShadowLayer]
的地方,将其改为bottomShadowLayer
。 - 全局搜索
[QMUIHelper actionSpringAnimationForView:]
,去掉对其的使用。
Bugfix
- Fixed #407 修复以 present 方式展示的
QMUIModalPresentationViewController
无法正确获取背后正在显示的界面所支持的设备方向的 bug。 - Fixed #410 系统 iOS 12.1 磨砂的 tabBar 在手势返回时 tabBarItem 布局错误的 bug。
- Fixed #412 修复
QMUINavigationTitleView
、QMUICommonViewController
无法响应[UINavigationBar appearance]. titleTextAttributes
的 bug。 - Fixed #420 修复
QMUIAlertController
以 actionSheet 形式显示/隐藏时动画的值计算错误的 bug。 - 修复
QMUIMultipleDelegates
与StaticTableView
、QMUICellHeightKeyCache
、QMUICellSizeKeyCache
同时使用时导致方法混乱的 bug。 - 修复
UINavigationController (NavigationBarTransition)
里对配置表内为 nil 的值没有使用,导致 navigationBar 切换界面后样式错误的 bug。
2.8.1
2.8.0
这个版本有三个主要的更新点:
- 兼容新发布的 iPhone XS/XS Max/XR,伴随较多的布局相关代码变更。
- 优化相册和 UIImageView 播放动图的性能。
- 增加
Debug
下上报项目信息的行为,具体请看文末的 关于项目信息统计。
新增功能
- 新增
QMUIPropertyDescriptor
用于包装一个runtime
下的property
结构objc_property_t
,从而以更高级直观的语法来访问objc_property_t
的各种信息。 QMUILabel
增加didCopyBlock
属性便于在复制完文本后做一些事情。UIImage (QMUI)
增加qmui_animatedImageWithData:
、qmui_animatedImageWithData:scale:
用于从 data 创建 animated image。UIImageView (QMUI)
增加qmui_pause
用于暂停/恢复当前动图的播放。CALayer (QMUI)
增加qmui_pause
用于暂停/恢复当前 layer 上的所有动画。- 通过
UIImageView (QMUI)
优化系统的UIImageView
播放 animated image 的性能,系统的播放方式在配合 UIScrollView 使用时会卡顿。这个优化默认开启,可通过新增的接口qmui_smoothAnimation
关闭。 - 新增
NSCharacterSet (QMUI)
,提供方法用于对 URL query 里的 value 编码,避免 value 带有&
、=
等字符会导致 query 解析混乱的问题。 UISearchBar (QMUI)
增加属性qmui_cancelButtonFont
用于修改取消按钮的字体,并让原有几个样式相关的属性支持UIAppearance
。UITextField (QMUI)
增加qmui_clearButton
用于获取clearButton
的引用,增加qmui_clearButtonImage
用于修改clearButton
的图片。QMUITextField
增加clearButtonPositionAdjustment
属性用于调整clearButton
的位置。QMUIHelper
增加系列接口用于兼容新发布的 iPhone XS/XS Max/XR:+ (NSString *)deviceModel; + (BOOL)isNotchedScreen;// 是否全面屏类型的设备 + (BOOL)isRegularScreen;// 将屏幕分为普通和紧凑两种,这个方法用于判断是否为普通屏幕 + (BOOL)is65InchScreen;// iPhone XS Max + (BOOL)is61InchScreen;// iPhone XR + (CGSize)screenSizeFor65Inch; + (CGSize)screenSizeFor61Inch;
QMUICommonDefines
重新整理了与设备区分相关的宏,涉及到新旧接口重命名,请查看 如何适配新版。#define PreferredValueForiPhone() // 用于区分 iPhone,如果是 iPad 则取与 Max/Plus 相同的值 #define PreferredValueForDeviceIncludingiPad() // 用于区分 iPad 和 iPhone #define PreferredValueForNotchedDevice() // 用于区分全面屏与非全面屏 #define PreferredValueForVisualDevice() // 用于区分宽松屏幕和紧凑屏幕 #define PreferredValueForAll() // 用于区分目前所有的设备 #define SafeAreaInsetsConstantForDeviceWithNotch // 用于获取全面屏手机的 safeAreaInsets 静态值,适用于那些不方便实时获取的场景 #define IS_NOTCHED_SCREEN // 判断是否全面屏 #define IS_65INCH_SCREEN // 判断是否为 XS Max #define IS_61INCH_SCREEN // 判断是否为 XR
会带来 QMUI 新旧版本兼容问题的更新
QMUIPopupMenuView
之前仅支持 item 统一的分隔线,所以无法做到 section 与 section 之间的特定分隔线样式,所以新版本将分隔线拆分为 item 之间的和 section 之间的,也带来了较多属性变更,请查看如何适配新版。QMUIPopupMenuView
大小计算策略改为自适应自身内容,需要检查用到的地方布局是否正常。- 配置表
supportedOrientationMask
默认值改为UIInterfaceOrientationMaskAll
,以避免与项目支持方向不一致时可能产生的 crash,相关 issue 请看 #395。 - 更新了相簿列表
QMUIAlbumTableViewCell
的默认样式,业务项目请检查是否需要调整。 - 为了适配新 iPhone,
QMUIHelper
、QMUICommonDefines.h
对一些设备相关的方法进行重命名。
如何适配新版
- 全局搜索用到
QMUIPopupMenuView
的地方,删除shouldShowSectionSeparatorOnly
和separatorColor
,对应增加新增的接口itemSeparatorColor
、itemSeparatorInset
、shouldShowSectionSeparator
、sectionSeparatorColor
、sectionSeparatorInset
。 - 检查用到
QMUIPopupMenuView
的地方,浮层大小是否与旧版一致。 - 全局搜索
safeAreaInsetsForIPhoneX
,将其重命名为safeAreaInsetsForDeviceWithNotch
。 - 全局搜索
IPhoneXSafeAreaInsets
,将其重命名为SafeAreaInsetsConstantForDeviceWithNotch
。 - 全局搜索
PreferredVarForDevices
,将其重命名为PreferredValueForiPhone
。 - 全局搜索
PreferredVarForUniversalDevices
,将其重命名为PreferredValueForDeviceIncludingiPad
。 - 全局搜索
PreferredVarForUniversalDevicesIncludingIPhoneX
,根据业务的逻辑,考虑更换为新的PreferredValueForNotchedDevice
或PreferredValueForAll
。 - 请检查你项目
Device Orientation
支持的方向是否与配置表里supportedOrientationMask
的方向不匹配。
- 检查选图控件调起的相簿列表样式是否符合预期。
Bugfix
- Fixed #393 修复
QMUIButton
在使用 Autolayout 布局时如果放在UITableViewCell.contentView
的某个subview
上时会出现的布局错乱的 bug。 - Fixed #398 修复 iOS 11 及以下在
setupNavigationItems
里将leftBarButtonItem/rightBarButtonItem
置为 nil 会导致手势返回时 crash 的 bug。 - Fixed #400 修复
QMUIZoomImageView
在重复设置不同图片时可能导致图片不可见的 bug。 - Fixed #402 修复
QMUIZoomImageView
使用initWithFrame:
初始化会死循环的 bug。
其他
- 优化
QMUIImagePickerPreviewViewController
从九宫格界面进入查看大图界面的速度。 - 优化
QMUIImagePickerPreviewViewController
左右切换查看 GIF 图时的卡顿。 - 相簿列表
QMUIAlbumViewController
对系统的隐藏相簿,不显示缩略图,以保护隐私。
关于项目信息统计
为了了解目前 QMUI iOS 的使用情况,我们在这个版本里加入了项目信息统计。在 DEBUG
模式下,应用启动的时候会将当前项目的 Bundle Identifier
和 Display Name
,以及当前项目正在使用的 QMUIKit 的版本上报,Release
模式下不会执行统计代码,因此没有隐私、安全隐患。开发者也可以通过在配置表里新增:
QMUICMI.sendAnalyticsToQMUITeam = NO; // SendAnalyticsToQMUITeam : 是否允许在 DEBUG 模式下上报 Bundle Identifier 和 Display Name 给 QMUI 统计用
来关闭这个统计行为。
具体的统计源码请查看 QMUIConfiguration.m:73。
2.7.6
新增功能
QMUICommonDefines.h
增加宏StatusBarHeightConstant
、NavigationContentTopConstant
用于某些无法动态获取系统 bar 高度的场景下的布局。QMUICommonDefines.h
增加CGRectApplyAffineTransformWithAnchorPoint
用于弥补系统的CGRectApplyAffineTransform
无法考虑 anchorPoint 的缺陷。UIView (QMUI)
增加属性qmui_frameApplyTransform
用于弥补系统的[UIView setFrame:]
无法在view
本身已经被应用了transform
后继续使用的缺陷。QMUIPieProgressView
增加borderWidth
、borderInset
属性。- 对以下几个常见的布局相关的方法增加
NaN
的保护,避免 Release 模式下出现非法数值导致 crash:
5.1.- [UIView setFrame:]
5.2.- [CALayer setBounds:]
5.3.- [CALayer setPosition:]
- 对以下两个方法增加非法
NSIndexPath
的保护,避免 Release 模式下出现 crash:
6.1.- [UICollectionView scrollToItemAtIndexPath:atScrollPosition:animated:]
6.2.- [UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]
QMUIOrderedDictionary
增加系列接口支持修改数据,具体请看头文件。
会带来 QMUI 新旧版本兼容问题的更新
- 重构
QMUIPopupMenuView
组件,以协议的方式支持任意自定义的 item 类型。 - 重命名
NSObject (QMUI)
里与ivar
、property
相关的方法,支持遍历继承自父类的成员变量和属性。 - 修改
QMUIMarqueeLabel
里两端的渐隐效果,改为用 mask 实现,因此相关接口也变了。
如何适配新版
- 请检查项目里所有使用
QMUIPopupMenuView
的地方,根据 Xcode 编译错误提示进行修改。 - 请检查项目里所有使用
qmui_enumrateInstanceMethods
、qmui_enumrateIvars
的地方,按照 Xcode 编译错误提示改为新的命名。 - 搜索项目里用到
QMUIMarqueeLabel
的地方,删除对属性fadeWidth
、fadeStartColor
、fadeEndColor
的使用。
Bugfix
修复以 storyboard
使用 QMUICommonTableViewController
时对 KVO 使用不当导致的 crash。
修复 QMUIPopupMenuItem
在没设置 image
时 imageMarginRight
依然会生效的问题。
修复 QMUIMarqueeLabel
将 shouldFadeAtEdge = NO
后文字无法显示的 bug。
修复 QMUIButton
里对 imageView
使用不当导致 sizeThatFits:
返回结果可能不准确的 bug。
#387 去掉 QMUIButton
在 setHighlighted:
、setEnabled:
时使用的动画。
Fixed #380 修复 QMUIImagePreviewViewController
以 rect
方式预览后再以 fade
方式退出预览,此时再次进入预览,背景遮罩丢失的 bug。
2.7.5
新增功能
- 增加
CAAnimation (QMUI)
,支持以 block 的形式使用CAAnimationDelegate
,语法更便捷的同时,也可以避免CAAnimation.delegate
为strong
带来的内存管理的麻烦。 QMUIMultipleDelegate
支持自动区分原 delegate 属性是strong
或weak
。
Bugfix
- Fixed #375 修复
QMUIModalPresentationViewController
的遮罩在状态栏为来电状态时只盖住一部分的状态栏的问题。 - Fixed #377 修复
QMUITextField
、QMUITextView
的maximumTextLenght
在某些场景下会产生 crash。 - Fixed #378 修复 对 delegate 已有值的 object 打开
qmui_multipleDelegatesEnabled
会导致原来的值丢失的 bug。 - 修复配置表里的
NavBarButtonFont
对导航栏上的按钮的highlighted
、disabled
状态不生效的问题。
2.7.4
- Fixed #368 #372 修复
QMUIImagePreviewViewController
以 window 方式预览图片时,手势拖拽退出预览模式的各种 bug。 - Fixed #369 修复
QMUINavigationController
里由于对 weak 使用不当导致的 crash 的问题。 - Fixed #370 修复配置表里的
TableViewCellBackgroundColor
项无效的问题。 - Fixed #371 修复
QMUIToastViewPosition
没有适配safeAreaInsets
的问题。 - 修复
QMUIDialogTextFieldViewController
某些 property 以 appearance 方式设置时无效的问题。
2.7.3
新增功能
QMUIImagePreviewViewController
支持手势拖拽退出预览状态,同时优化了一些方法的命名。QMUIDialogViewController
增加属性modalPresentationViewController
方便自定义,增加方法- removeCancelButton
、- removeSubmitButton
。NSString (QMUI)
增加- qmui_stringByReplacingPattern:withString:
方便使用正则表达式修改字符串。
会带来 QMUI 新旧版本兼容问题的更新
- 重新整理了
QMUIDialogViewController
的代码,一些操作的执行时机与以前不同。
如何适配新版
- 全局搜索
startPreviewFromRectInScreen:
,将其替换为startPreviewFromRectInScreenCoordinate:
。 - 全局搜索
endPreviewToRectInScreen:
,将其替换为exitPreviewToRectInScreenCoordinate:
。 - 全局搜索
startPreviewFading:
,将其替换为startPreviewByFadeIn:
。 - 全局搜索
endPreviewFading:
,将其替换为exitPreviewByFadeOut:
。 - 全局搜索
QMUIZoomImageView
的imageViewRectInZoomImageView
,将其替换为contentViewRectInZoomImageView
。
2.7.2
新增功能
- 新增
QMUIVisualEffectView
,支持在前面盖一层颜色,方便实现某些设计需求。 QMUIAlertController
增加属性mainVisualEffectView
和cancelButtonVisualEffectView
,当你需要磨砂背景时,可以将一个QMUIVisualEffectView
赋值给它们从而实现磨砂的效果。QMUIDialogViewController
增加属性contentViewBackgroundColor
用于修改contentView
的背景色。QMUIDialogTextFieldViewController
支持添加多个输入框,并增加textFieldLabelMargins
、textFieldMargins
、textFieldHeight
、textFieldSeparatorInsets
用于调整间距。QMUIDialogSelectionViewController
增加rowHeight
属性方便统一控制弹窗里的每行高度。QMUIMultipleDelegates
增加方法containsDelegate:
用于判断是否已经包含了某个 delegate。UIImage (QMUI)
增加方法+ qmui_imageWithSize:opaque:scale:actions:
用于快速绘制一张图。UIView(QMUI)
增加常量QMUIViewSelfSizingHeight
用于快速完成sizeThatFits:
和setFrame:
,具体用法请搜索 QMUIKit 内使用到的地方。QMUIPopupMenuView
增加itemConfigurationHandler
用于批量修改 item 的样式。UITableViewCell(QMUI)
增加属性qmui_accessoryView
用于获取自定义或系统默认的accessoryView
,系统默认是无法获取到accessoryType
产生的 view 的。QMUIImagePickerViewControllerDelegate
增加方法imagePickerViewController:shouldCheckImageAtIndex:
用于控制是否能选中指定的图片,感谢 @fanxiangyang 在 #352 下的建议。
会带来 QMUI 新旧版本兼容问题的更新
- 重新整理了
QMUIDialogViewController
系列控件的样式代码,建议检查一遍业务里使用到的地方样式是否正确。 - 将
UIImage(QMUI) qmui_imageResizedInLimitedSize
系列方法里的参数contentMode
改为新增的QMUIImageResizingMode
枚举类型。 - 优化某些命名,并修正了某些错误拼写。
如何适配新版
- 将所有用到
QMUIDialogTextFieldViewController
的地方改为新的添加输入框的方法。 - 全局搜索
qmui_imageResizedInLimitedSize
,将用到参数contentMode
的地方,类型改为新的QMUIImageResizingMode
。 - 以 Starting 的方式全局搜索
QMUIBorderViewPosition
,将其重命名为QMUIViewBorderPosition
。 - 以 Containing 的方式全局搜索
qmui_seperator
,将其替换为qmui_separator
。 - 以 Containing 的方式全局搜索
alertSeperatorColor
,将其替换为alertSeparatorColor
。 - 以 Containing 的方式全局搜索
sheetSeperatorColor
,将其替换为sheetSeparatorColor
。
Bugfix
- Fixed #179 修复从 navigationBar 显示的界面手势返回到 navigationBar 隐藏的界面会出现内存泄露的问题。
- Fixed #351 修复
UINavigationController (NavigationBarTransition)
没有考虑setViewControllers:
的问题。 - Fixed #357 修复把一个
QMUIMultipleDelegates
对象作为delegate
时可能导致respondsToSelector:
返回值错误的 bug。 - Fixed #358 修复
QMUIToastContentView
某些支持 appearance 的属性在以 appearance 方式修改后无法生效的 bug。 - Fixed #362 修复
QMUINavigationButton
内部对navigationItem
混乱的保护可能产生 item 重复的 bug。 - 修复了重写
UINavigationController
的手势返回动画后可能发生的无法 push/pop 的 bug。 - 修复
QMUINavigationController
里某些 KVO 的使用可能引发的 crash。 - 修复配置表的
NavBarButtonFont
对导航栏上的UIBarButtonItem
不生效的问题。 - 修复某些情况下重复调用
QMUIAlertController
的hide
方法会导致控件产生各种异常的问题。 - 修复
QMUIModalPresentationViewController
以 present 方式展示时,没有把所有生命周期都传递给contentViewController
的 bug。
其他更新
QMUICommonViewController
原本在setupNavigationItems
里设置navigationItem.titleView
,现在改为在didInitialize
,以避免过于频繁的设置容易覆盖业务自定义代码的情况。
2.7.1
新增功能
UIBarItem (QMUIBadge)
增加qmui_badgeString
接口用于接受一个字符串来设置未读数。UIBarItem (QMUIBadge)
增加属性qmui_badgeLabel
和qmui_updatesIndicatorView
,方便使用。
会带来 QMUI 新旧版本兼容问题的更新
QMUIModalPresentationViewController
的updateLayout
方法改为立即刷新布局,以前是在下一次runloop
才会刷新。QMUIModalPresentationContentViewControllerProtocol
的preferredContentSizeInModalPresentationViewController:limitSize:
增加参数keyboardHeight
用于需要依赖键盘高度计算布局的场景。UIBarItem (QMUI)
将qmui_badgeValue
重命名为qmui_badgeInteger
。+ [QMUIKeyboardManager visiableKeyboardHeight]
重命名为visibleKeyboardHeight
,之前拼错了。QMUIPopupMenuItem
的handler
增加参数aMenuView
和aItem
,方便使用。
如何适配新版
- 由于
updateLayout
改为立即刷新,因此需要检查一下自己的浮层在显示/隐藏/键盘升起降下时动画是否正常。 - 全局搜索用到
preferredContentSizeInModalPresentationViewController:limitSize:
的地方,为其增加新参数keyboardHeight:(CGFloat)keyboardHeight
。 - 全局搜索
qmui_badgeValue
,将其替换为qmui_badgeInteger
。 - 全局搜索
visiableKeyboardHeight
,将其替换为visibleKeyboardHeight
。 - 全局搜索
QMUIPopupMenuItem
,为用到hander
的地方增加2个新参数(QMUIPopupMenuView *aMenuView, QMUIPopupItemView *aItemView)
。
Bugfix
2.7.0
新增功能
- 增加
QMUIBadge
组件用于为UIBarItem
(包含UIBarButtonItem
和UITabBarItem
)显示未读数和未读红点,具体请看 UIBarItem+QMUIBadge.h 头文件的说明,相应地,QMUI Demo 里也增加了对应的 Demo 展示。目前业界常见的红点组件基本上对红点的设置时机都有要求,因为红点都是加到[item valueForKey:@"view"]
里,但UIBarButtonItem
只有在UINavigationBar
可视后才能获取到 view 属性,所以用起来很麻烦。但 QMUIBadge 并没有这个限制,推荐使用。 UIControl (QMUI)
增加qmui_tapBlock
属性用于方便地添加事件,不用再去写addTarget:action:forControlEvents:
了。QMUIAlertControllerDelegate
增加shouldHideAlertController:
用于阻止 hide 操作。UICollectionView (QMUI)
增加qmui_indexPathsForVisibleItems
用于获取按照大小排序后的 visible items,系统的indexPathsForVisibleItems
返回的数组是无序的。NSObject (QMUI)
增加qmui_enumrateIvarsXxxx
系列接口用于遍历某个 class 的成员变量,相应的,QMUI Demo 里的 NSObject (QMUI) 也可以搜索成员变量了。QMUICommonDefines.h
增加CGSizeIsValidated
、CGSizeIsNan
、CGSizeIsInf
函数用于判断非法的CGSize
值。
会带来 QMUI 新旧版本兼容问题的更新
- 废弃当初为了兼容 iOS 7 的
QMUIVisualEffectView
,现在请使用系统自带的UIVisualEffectView
。 - 将 QMUI 内多个地方使用的
didInitialized
重命名为didInitialize
,以保证更准确的表达,相应的,Code Snippets 也进行了更新。 - 将
- [QMUIModalPresentationViewControllerDelegate requestHideAllModalPresentationViewController]
方法废弃,新增QMUIModalPresentationComponentProtocol
协议用于代替被废弃的方法。 QMUIModalPresentationViewController.maximumContentViewWidth
默认值改为CGFLOAT_MAX
,与常见的以 maximumXxx 风格命名的属性的默认值保持一致,如果业务里依赖于旧版本的默认值,则更新版本后,需要重新检查这些地方的浮层的布局是否正常。
如何适配新版
- 全局搜索
QMUIVisualEffectView
,将使用的地方改为用UIVisualEffectView
。 - 以 Starting With 模式全局搜索
didInitialized
,将其替换为didInitialize
,如果你有使用 Code Snippets,也请一并更新。 - 全局搜索
requestHideAllModalPresentationViewController
,将其改为用QMUIModalPresentationComponentProtocol
协议(可能需要对该处声明为实现了<QMUIModalPresentationComponentProtocol>
)。 - 检查所有使用了
QMUIModalPresentationViewController
的地方,观察其在 iPad 等宽屏场景下布局是否正常,或者也可以直接用[QMUIModalPresentationViewController appearance].maximumContentWidth = ([QMUIHelper screenSizeFor47Inch].width - UIEdgeInsetsGetHorizontalValue(appearance.contentViewMargins));
来将默认值恢复到与上一个版本一致。 - 如果有使用配置表,请到 QMUIKit/QMUIConfigurationTemplate/QMUIConfigurationTemplate.m 里将
#pragma mark - QMUIBadge
那一段新增的配置复制到你的配置表里。
Bugfix
- Fixed #332 #344
QMUICommonViewController
里对setupNavigationItems
和setupToolbarItems
调用错误,上个版本的手误,终于改过来了🤪。 - Fixed #342 修复
QMUITextView
调用initWithFrame:
初始化时,高度会强制被改为 0 的 bug。 - Fixed #335 修复当修改非
topViewController
的leftBarButtonItem
会影响topViewController
自定义返回按钮的布局的 bug。另外,由于尚未有理想的自定义返回按钮解决方案,以及尚未遇到系统返回按钮无法实现的功能,因此自定义返回按钮功能可能会在后续的版本里被废弃,建议不要再使用。 - Fixed #346 修复为
UITextView
、UITextField
打开qmui_multipleDelegatesEnabled
后把输入框的 delegate 指向输入框自身时,会产生死循环的 bug。 - 修复
QMUIKeyboardManager
在 App 已经处于不活跃状态时依然接受键盘事件,容易导致业务布局混乱的问题。 - 修复
QMUIAlertController
连续调用两次 show 会导致产生一个无法消除的 window,影响 App 点击的 bug。 - 修复
QMUICommonTableViewController
里的tableView.contentInset
变化时不会自动触发emptyView
刷新布局的 bug。 - 修复
QMUIDialogSelectionViewController
在setItems:
后没有刷新布局的 bug。
其他修改
- 优化
QMUIEmptyView
里的actionButton
按钮的高亮样式,以前通过actionButtonTitleColor
属性设置按钮文字颜色时只设置了UIControlStateNormal
状态的,所以点击时看不到变化。