- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
简短介绍一下我想用它实现的目标:
我有一个自定义的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/
我已将我的项目从 Swift 2.3 更新到 Swift 3。Swift 编译器警告显示“'UIViewAutoresizing' 类型的表达式未使用” self.autorisizinMask =
简短介绍一下我想用它实现的目标: 我有一个自定义的UIView,我想让箭头可见,例如在底部和左侧。我认为可以采用与 UIViewAutoresizing 相同的方式执行此操作。 所以我为我的自定义 V
我正在创建一个具有重要旋转行为的 View Controller 。我无法找到一种方法来让我的所有转换都发生在只有 UIViewAutoresizing 的情况下(我正在做一些事情,比如在旋转按钮时让
在 Swift 2.0 中出现这个错误。 Binary operator '|' cannot be applied to two UIViewAutoresizing operands 代码如下:
具有 UIViewAutoresizing Height+Top 或 Height+Bottom 的 UIView 的自动调整大小行为是什么?这有道理吗?边距之一或 View 本身是否优先?我刚刚发现
我是一名优秀的程序员,十分优秀!