UIButton.layer.cornerRadius 不存在?
Posted
技术标签:
【中文标题】UIButton.layer.cornerRadius 不存在?【英文标题】:UIButton.layer.cornerRadius doesn't exist? 【发布时间】:2010-12-05 04:59:20 【问题描述】:我正在实现一个功能最少的自定义 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 SDK 3.1,甚至添加了 #ifdef 来确认这一点。
谁能告诉我我忽略了明显的地方吗?
谢谢
【问题讨论】:
【参考方案1】:确保你
#import到你的头文件或实现文件中。
【讨论】:
如果您的意思是“#import "CustomButton.h",我是在 .m 文件的开头这样做的。 呃。不,对不起,格式搞砸了。 #import试试这个,
#import <QuartzCore/QuartzCore.h>
Button.layer.cornerRadius = 15.0;
[Button.layer setMasksToBounds:YES];
【讨论】:
这个问题几年前就已经正确回答了,你的回答什么也没增加。 你的问题解决了我的问题,但我的问题不是这个问题。仍然为你的贡献点赞。 :)以上是关于UIButton.layer.cornerRadius 不存在?的主要内容,如果未能解决你的问题,请参考以下文章