【发布时间】:2014-09-09 08:24:04
【问题描述】:
我正在尝试从已在 Interface Builder 中创建的 UIView 中实例化一个简单的 UIButton,但没有任何反应。 我已将以下代码附加到视图中:
“DetailViewTwo.h”:
#import <UIKit/UIKit.h>
@interface DetailViewTwo : UIView
@property (nonatomic) bool viewIsShown;
@property (nonatomic) float lastY;
@property (weak, nonatomic) IBOutlet UILabel *titleLabel;
@property (strong, nonatomic) NSMutableArray *radioArray;
-(void)createOption:(NSString *)legenda Value:(NSString *)value action:(SEL)action;
-(void)clearView:(NSString *)novoNome;
-(void)escolherRota:(id)sender;
@end
“DetailViewTwo.m”:
#import "DetailViewTwo.h"
#import "MainViewController.h"
#import <QuartzCore/QuartzCore.h>
@implementation DetailViewTwo
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
_viewIsShown=false;
[self.layer setMasksToBounds:YES];
self.layer.cornerRadius=6;
UIButton *but=[UIButton buttonWithType:UIButtonTypeRoundedRect];
but.frame= CGRectMake(100, 15, 15, 15);
[but setTitle:@"Ok" forState:UIControlStateNormal];
[but addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:but];
}
return self;
}
@end
(哦,还有,我的 'self.layer.cornerRadius=6;' 也不起作用,有关系吗??)
【问题讨论】:
-
您是否也在某个地方初始化 DetailViewTwo?如果不是,那么
- (id)initWithFrame:(CGRect)frame将不会被调用。这就是你看不到cornerRadius的原因。要添加按钮,只需将其添加到该视图而不是其父视图。[self addSubview:but];应该添加按钮。如果您仍然看不到按钮,请调整框架! -
设置 self.layer.cornerRadius=6;在视图的 drawRect 方法中。
标签: ios objective-c xcode uiviewcontroller uibutton