accessibilityIdentifier

UIKit 框架,有这么一个神奇的东西:accessibilityIdentifier

//
//  UIAccessibilityIdentification.h
//  UIKit
//
//  Copyright 2010-2012 Apple Inc. All rights reserved.
//

#import 
#import 
#import 
#import 

NS_ASSUME_NONNULL_BEGIN

@protocol UIAccessibilityIdentification 
@required

/*
 A string that identifies the user interface element.
 default == nil
*/
@property(nullable, nonatomic, copy) NSString *accessibilityIdentifier NS_AVAILABLE_IOS(5_0);

@end

@interface UIView (UIAccessibility) 
@end

@interface UIBarItem (UIAccessibility) 
@end

/*
 Defaults to the filename of the image, if available.
 The default identifier for a UIImageView will be the identifier of its UIImage.
 */
@interface UIImage (UIAccessibility) 
@end

NS_ASSUME_NONNULL_END

看注释:A string that identifies the user interface element.default ==nil

意思是说: accessibilityIdentifier是UI元素的一个NSString 标识,#默认值是nil!#有点类似Cell 的ReuseIdentifier了,这也就好理解了;

来个简单:

UIImageView * picView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 90, 50, 50)];
    picView.image = [UIImage imageNamed:@"add_pic.png"];
    [picView.image setAccessibilityIdentifier:@"add”];

这个图片 “add_pic.png” 的标记 就是 “add” ,当你更换picview的image时,如果不给AccessibilityIdentifier属性重新复制的话,这个属性的值就会变成nil(默认),每个图片都会对应一个专属的AccessibilityIdentifier;方便我们识别图片。

if ([picView.image.accessibilityIdentifier isEqualToString:@"add"]) {
        <#your code#>
    }else{
        <#your code#>
    }

这样会方便很多,减少bool变量过多带来的问题。

你可能感兴趣的:(accessibilityIdentifier)