UIButton.layer.cornerRadius不存在?
问题描述:
我正在实现具有最小功能的自定义UIButton。 .h文件:UIButton.layer.cornerRadius不存在?
#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 SDK 3.1,甚至添加了#ifdef来确认。
有人可以告诉我我忽略了哪些显而易见的地方吗?
感谢
答
确保您
#import <QuartzCore/QuartzCore.h>到你的头或实现文件。
答
试试这个,
#import <QuartzCore/QuartzCore.h>
Button.layer.cornerRadius = 15.0;
[Button.layer setMasksToBounds:YES];
+0
这个问题在几年前被正确回答,你的回答没有增加任何内容 – jrturton 2014-01-05 09:22:56
+1
你的问题解决了我的问题,但我的问题不是t他的问题......仍然赞成你的贡献。 :) – 2014-05-24 12:02:23
如果你的意思是“#进口‘CustomButton.h’,我这样做,在.m文件的开头。 – tba 2009-10-09 01:39:00
啊。对不起,先生,格式化搞砸的事情了。 #import –
2009-10-09 02:16:52
感谢!工作 – tba 2009-10-09 02:28:58