Это сводит меня с ума ... Я видел несколько постов по похожим вопросам, но, похоже, не могу заставить его работать, вот оно:
это очень простой пример, яя просто создаю пользовательский UIButton в пользовательском представлении, а затем назначаю ему пользовательское действие для реагирования на сенсорные события.Когда я запускаю приложение, кнопка создается, но при попытке щелкнуть по ней ничего не происходит.
Вот код моего пользовательского класса:
#import "MySegmentedControl.h"
@implementation MySegmentedControl
@synthesize button1;
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
CGFloat a = frame.origin.x+5;
CGFloat b = frame.origin.y+5;
CGFloat l = frame.size.width-15;
CGFloat h = frame.size.height-15;
CGFloat c = a+l;
CGFloat d = b;
CGRect frame2 = CGRectMake(a, b, l, h);
UIButton *mybutton1 = [UIButton buttonWithType:UIButtonTypeCustom];
mybutton1.frame = frame2;
[mybutton1 setTitle:@"TEST" forState:UIControlStateNormal];
mybutton1.titleLabel.textColor = [UIColor blackColor];
mybutton1.backgroundColor = [UIColor blueColor];
[mybutton1 addTarget:self action:@selector(action)forControlEvents:UIControlEventTouchUpInside];
[self setButton1:mybutton1];
self.userInteractionEnabled = YES;
button1.userInteractionEnabled = YES;
[self addSubview:button1];
[self bringSubviewToFront:button1];
}
return self;
}
-(void)action {
[button1 setTitle:@"done" forState:UIControlStateNormal];
button1.backgroundColor = [UIColor greenColor];
NSLog(@"Working!");
}
А вот appDelegate:
#import "MySegmentedControlAppDelegate.h"
#import "MySegmentedControl.h"
@implementation MySegmentedControlAppDelegate
@synthesize window;
#pragma mark -
#pragma mark Application lifecycle
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[window makeKeyAndVisible];
MySegmentedControl *mycontrol = [[MySegmentedControl alloc] initWithFrame:CGRectMake(10,50,135,50)];
[window addSubview:mycontrol];
return YES;
}
Как вы можете видеть из пользовательского класса, из того, что я читал в других постах, я попытался добавить несколько вещей, чтобы увеличить свои шансы на успех:
- включение пользовательского взаимодействия с пользовательским представлением
- вывод UIButton на передний план
- , обеспечивающий полное включение рамки кнопки в рамку вида
- ...
... но он все еще не работает! ...
Любая помощь будет принята с благодарностью - спасибо!
Редактировать: здесь также есть заголовок для пользовательскихпросмотр:
#import <UIKit/UIKit.h>
@interface MySegmentedControl : UIView {
UIButton *button1;
}
@property (nonatomic, retain) IBOutlet UIButton *button1;
- (void)action;
@end