我正在实现一个具有最小功能的自定义UIButton。.h文件:
#import <Foundation/Foundation.h>
@interface CustomButton : UIButton {
}
@end
我在.m文件的第(A)行遇到一个编译错误:
- (id)initWithCoder:(NSCoder *)coder {
if(self = [super initWithCoder:coder]) {
CALayer *layer = [self layer];
NSLog(@"layer=%@",layer);
NSLog(@"delegate=%@",[layer delegate]);
#ifdef __IPHONE_3_0
layer.cornerRadius = 4.0f; // (A) error: request for member 'cornerRadius' in something not a structure or union
#endif
}
return self;
}
如果我注释掉(A)行,我会得到以下输出:
2009-10-08 17:35:06.681 MyApp[2596:4e07] layer=<CALayer: 0x3cdf520>
2009-10-08 17:35:06.683 MyApp[2596:4e07] delegate=<CustomButton: 0x3cdaff0; baseClass = UIButton; frame = (9 212; 255 55); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x3cdf520>>
根据documentation,CALayer应该有一个cornerRadius属性。我正在使用iPhone SDK3.1,甚至添加了一个#ifdef来确认这一点。
有人能告诉我我忽略了哪些明显的问题吗?
谢谢
发布于 2014-01-05 14:47:27
尝尝这个,
#import <QuartzCore/QuartzCore.h>
Button.layer.cornerRadius = 15.0;
[Button.layer setMasksToBounds:YES];
https://stackoverflow.com/questions/1541324
复制相似问题