How to write a generic UIRectCorner function?
objective-c
Solution
There is no real way to "simplify" the logic. If you have 4 `BOOL` values, you need to check each one:
UIRectCorner corners = 0;
if (isRectCornerBottomLeft) {
corners |= UIRectCornerBottomLeft;
}
if (isRectCornerBottomRight) {
corners |= UIRectCornerBottomRight;
}
if (isRectCornerTopLeft) {
corners |= UIRectCornerTopLeft;
}
if (isRectCornerTopRight) {
corners |= UIRectCornerTopRight;
}
You could also do something like:
UIRectCorner corners = (isRectCornerBottomLeft ? UIRectCornerBottomLeft : 0) |
(isRectCornerBottomRight ? UIRectCornerBottomRight : 0) |
(isRectCornerTopLeft ? UIRectCornerTopLeft : 0) |
(isRectCornerTopRight ? UIRectCornerTopRight : 0);
Problem
Here is the objective-c code: ``` UIBezierPath *maskPath; maskPath = [UIBezierPath bezierPathWithRoundedRect:_backgroundImageView.bounds byRoundingCorners:(UIRectCornerBottomLeft | UIRectCornerBottomRight) cornerRadii:CGSizeMake(3.0, 3.0)]; ``` What I would like to do is, I would like to parse 4 booleans, and modify the `byRoundingCorners`. But the problem is that, for example, I have `isRectCornerBottomLeft` is `YES`, and rest of them is `NO`, I will do something like this: `maskPath = [UIBezierPath bezierPathWithRoundedRect:_backgroundImageView.bounds byRoundingCorners:(UIRectCornerBottomLeft) cornerRadii:CGSizeMake(3.0, 3.0)];` But how can I control the `UIRectCorner`? of course, I can do many if else to check whether the `isRectCornerBottomLeft` is `YES`, and which one is `NO` to write every conditions out. But apart from that, how can I simplify that logic? Thanks.