关键词:
【中文标题】替代要弃用的 UIView 自动布局方法【英文标题】:Alternative to UIView autolayout methods which are to be deprecated 【发布时间】:2015-04-28 06:03:45 【问题描述】:根据 UIView.h 头文件,下面的方法将被弃用。
在代码中使用自动布局的替代方法是什么?
我看不出代码注释中推荐的方法如何替换现有的对应方法,因为它们适用于实际约束而不是 UIView 和约束之间的关系。
@interface UIView (UIConstraintBasedLayoutInstallingConstraints)
- (NSArray *)constraints NS_AVAILABLE_IOS(6_0);
- (void)addConstraint:(NSLayoutConstraint *)constraint NS_AVAILABLE_IOS(6_0); // This method will be deprecated in a future release and should be avoided. Instead, set NSLayoutConstraint's active property to YES.
- (void)addConstraints:(NSArray *)constraints NS_AVAILABLE_IOS(6_0); // This method will be deprecated in a future release and should be avoided. Instead use +[NSLayoutConstraint activateConstraints:].
- (void)removeConstraint:(NSLayoutConstraint *)constraint NS_AVAILABLE_IOS(6_0); // This method will be deprecated in a future release and should be avoided. Instead set NSLayoutConstraint's active property to NO.
- (void)removeConstraints:(NSArray *)constraints NS_AVAILABLE_IOS(6_0); // This method will be deprecated in a future release and should be avoided. Instead use +[NSLayoutConstraint deactivateConstraints:].
@end
【问题讨论】:
【参考方案1】:约束本身包含关系(即,它们指向关系中涉及的一个或多个视图),因此将约束添加到视图的旧方法是多余的,有时会令人困惑,因为您必须选择正确的视图在层次结构中添加它们。
在新方法中,您只需创建约束并将其 active
属性设置为 YES
(对于 Objective-C)或 true
(对于 Swift),系统就会为您将其添加到正确的视图中.如果您要添加多个约束,则调用类方法activateConstraints:
,它会为您设置属性。
使用旧方法,由程序员将约束添加到正确的视图。如果您对所涉及的视图 A 和视图 B 有约束,那么在何处添加约束有 3 种可能性:
-
如果视图 A 是视图 B 的子视图(或子视图的子视图),则应将约束添加到视图 B。
如果视图 B 是视图 A 的子视图(或子视图的子视图),则应将约束添加到视图 A。
如果视图 A 和视图 B 都是另一个视图(称为 C)的子视图,则应将约束添加到视图 C。
使用新方法,您只需将约束的active
属性设置为YES/true
,系统就会为您解决这个问题。这要容易得多。
【讨论】:
“为您添加到正确的视图”是什么意思?基于first/secondItem
属性的含义?
“正确的视图”取决于两个视图在视图层次结构中的位置。如果视图 B 是视图 A 的子视图,则将约束添加到视图 A。如果视图 A 和 B 都是另一个视图的子视图,则将约束添加到视图 A 和 B 的父视图。
有趣 - 供参考,这里有一个简短的文章:ericasadun.com/2014/07/11/…已弃用的 NSURLConnection 方法,有替代方法吗?
】已弃用的NSURLConnection方法,有替代方法吗?【英文标题】:DeprecatedNSURLConnectionMethods,isthereanalternative?【发布时间】:2012-02-2814:12:26【问题描述】:我正在设置一个NSURLConnection来访问远程服务器:NSURL*url=[[NSURLalloc]initWithString:proj... 查看详情
图像中已弃用的 Notification 类的替代方法是啥?
】图像中已弃用的Notification类的替代方法是啥?【英文标题】:WhatisthealternativeforthedeprecatedNotificationclassintheimage?图像中已弃用的Notification类的替代方法是什么?【发布时间】:2014-02-1811:14:20【问题描述】:我打算在android设备的... 查看详情
已弃用的 Hibernate.createClob(Reader reader, int length) 的替代方法是啥
】已弃用的Hibernate.createClob(Readerreader,intlength)的替代方法是啥【英文标题】:WhatisthealternatefordeprecatedHibernate.createClob(Readerreader,intlength)已弃用的Hibernate.createClob(Readerreader,intlength)的替代方法是什么【发布时间】:2012-02-1601:23:11【 查看详情
替代已弃用的 AudioManager.isWiredHeadsetOn?
】替代已弃用的AudioManager.isWiredHeadsetOn?【英文标题】:AlternativetothedeprecatedAudioManager.isWiredHeadsetOn?【发布时间】:2013-01-0207:43:44【问题描述】:方法AudioManager.isWiredHeadsetOn()从api级别14被弃用,我们现在如何检测是否连接了有线... 查看详情
寻找现在已弃用的 retryWhen 的替代方案
】寻找现在已弃用的retryWhen的替代方案【英文标题】:LookingforanalternativeofretryWhenwhichisnowDeprecated【发布时间】:2020-10-0616:34:43【问题描述】:我遇到了WebClient和reactor-extra的问题。确实,我有以下方法:publicEmployeegetEmployee(Stringemp... 查看详情
pymxs 替代已弃用的 MaxPlus 实用程序函数
】pymxs替代已弃用的MaxPlus实用程序函数【英文标题】:pymxsalternativestothedeprecatedMaxPlusutilityfunctions【发布时间】:2021-08-2400:11:17【问题描述】:随着Autodesk从3dsMax中删除MaxPlus,我现在不得不重新编写一些代码,并且想知道是否有... 查看详情
是否有快速替代已弃用的“SKPaymentTransaction.transactionReceipt”?
】是否有快速替代已弃用的“SKPaymentTransaction.transactionReceipt”?【英文标题】:Isthereafastreplacementfordeprecate`SKPaymentTransaction.transactionReceipt`?【发布时间】:2014-05-1513:41:45【问题描述】:是否有快速替代已弃用的SKPaymentTransaction.tran... 查看详情
Android:替代已弃用的 Context.MODE_WORLD_READABLE?
】Android:替代已弃用的Context.MODE_WORLD_READABLE?【英文标题】:Android:AlternativetothedeprecatedContext.MODE_WORLD_READABLE?【发布时间】:2012-12-0103:51:09【问题描述】:Fromhere我知道一种写入文件并可供其他应用程序和其他意图访问的方法,... 查看详情
BitmapDrawable 已弃用的替代方案
】BitmapDrawable已弃用的替代方案【英文标题】:BitmapDrawabledeprecatedalternative【发布时间】:2012-04-1606:11:56【问题描述】:我有以下代码可以将可绘制对象旋转一定的度数。publicDrawablerotateDrawable(floatangle,Contextcontext)BitmaparrowBitmap=Bitm... 查看详情
已弃用的 AudioManger.setStreamMute 的替代方案?
】已弃用的AudioManger.setStreamMute的替代方案?【英文标题】:AlternativefordeprecatedAudioManger.setStreamMute?【发布时间】:2016-01-0812:48:11【问题描述】:AudioManger.setStreamMute现在被api23弃用,最好使用AudioManager.adjustStreamVolume和AudioManager.ADJU... 查看详情
已弃用的 google plus api 的替代解决方案是啥?
】已弃用的googleplusapi的替代解决方案是啥?【英文标题】:Whatisthealternativesolutionofdeprecatedgoogleplusapi?已弃用的googleplusapi的替代解决方案是什么?【发布时间】:2019-06-2315:43:08【问题描述】:Google宣布在3月7日弃用所有googleplusapi... 查看详情
iOS 12.0 替代使用已弃用的 archiveRootObject:toFile:
】iOS12.0替代使用已弃用的archiveRootObject:toFile:【英文标题】:iOS12.0AlternativetoUsingDeprecatedarchiveRootObject:toFile:【发布时间】:2019-05-0322:47:12【问题描述】:在iOS12中,archiveRootObject:toFile:已被弃用。任何人都可以提出一种简化的替代... 查看详情
如何为已弃用的英特尔 IPP API 找到替代 API?
】如何为已弃用的英特尔IPPAPI找到替代API?【英文标题】:HowtofindalternativeAPIsfordeprecatedIntelIPPAPIs?【发布时间】:2014-11-0410:11:49【问题描述】:我正在与IntelIntegratedPerformancePrimitives(IntelIPP8.2)合作。我正在尝试使用来自UtilityFunction... 查看详情
[FFmpeg]啥是已弃用的 avpicture_alloc、avpicture::data 的替代品
】[FFmpeg]啥是已弃用的avpicture_alloc、avpicture::data的替代品【英文标题】:[FFmpeg]whatisreplacementsofavpicture_alloc,avpicture::datawhichweredeprecated[FFmpeg]什么是已弃用的avpicture_alloc、avpicture::data的替代品【发布时间】:2016-04-1204:47:35【问题描... 查看详情
channel 或 mutablesharedflow ,哪个是已弃用的 localbroadcastmanager 的更好替代品
...l或mutablesharedflow,哪个是已弃用的localbroadcastmanager的更好替代品【英文标题】:channelormutablesharedflow,whichoneisabetterreplacementfordeprecatedlocalbroadcastmanager【发布时间】:2021-04-0321:15:20【问题描述】:过去,我在聊天和出租车应用程序... 查看详情
OnActivityResult 方法已弃用,有啥替代方法?
】OnActivityResult方法已弃用,有啥替代方法?【英文标题】:OnActivityResultmethodisdeprecated,whatisthealternative?OnActivityResult方法已弃用,有什么替代方法?【发布时间】:2020-10-2113:30:48【问题描述】:我最近发现onActivityResult已被弃用。... 查看详情
OnActivityResult 方法已弃用,有啥替代方法?
】OnActivityResult方法已弃用,有啥替代方法?【英文标题】:OnActivityResultmethodisdeprecated,whatisthealternative?OnActivityResult方法已弃用,有什么替代方法?【发布时间】:2021-12-1316:12:04【问题描述】:我最近发现onActivityResult已被弃用。... 查看详情
用的挺顺手的springsecurity配置类,居然就要被官方弃用了?
...,如果你看了的话,肯定不会学废弃技术。这里把整套的替代方案再搞一遍,可别再学过时技术了。旧玩法:新玩法:相关原理去看这一篇文章。使用WebSecurity.ignoring()忽略某些URL请求,这些请求将被SpringSecurity忽略,这意味着这... 查看详情