gpt4 book ai didi

ios - typedef NS_OPTIONS 检查像 UIViewAutoresizing

转载 作者:IT王子 更新时间:2023-10-29 08:05:00 24 4
gpt4 key购买 nike

简短介绍一下我想用它实现的目标:
我有一个自定义的UIView,我想让箭头可见,例如在底部和左侧。我认为可以采用与 UIViewAutoresizing 相同的方式执行此操作。

所以我为我的自定义 View 创建了一个类似的 typedef:

typedef NS_OPTIONS(NSUInteger, Arrows) {
ArrowNone = 0,
ArrowRight = 1 << 0,
ArrowBottom = 1 << 1,
ArrowLeft = 1 << 2,
ArrowTop = 1 << 3
};

同样在我的自定义 View 头文件中,我添加了:

@property (nonatomic) Arrows arrows;

一切正常,现在我可以设置属性了:
customview.arrows = (ArrowBottom | ArrowLeft);

这将返回 6

现在我的问题是,如何检查我的 arrows 属性是否包含 bottom 和 left?我试过:

if (self.arrows == ArrowLeft) {
NSLog(@"Show arrow left");
}

这没有做任何事情。还有其他方法可以检查吗?

最佳答案

检查位掩码的正确方法是使用 AND (&) 运算符解码值,如下所示:

Arrows a = (ArrowLeft | ArrowRight);    
if (a & ArrowBottom) {
NSLog(@"arrow bottom code here");
}

if (a & ArrowLeft) {
NSLog(@"arrow left code here");
}

if (a & ArrowRight) {
NSLog(@"arrow right code here");
}

if (a & ArrowTop) {
NSLog(@"arrow top code here");
}

这将在控制台中打印出来:

arrow left code here
arrow right code here

关于ios - typedef NS_OPTIONS 检查像 UIViewAutoresizing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13217542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com