Я создаю пользовательское представление, которое будет действовать как панель нижнего колонтитула, поэтому я могу передать несколько представлений вместо использования IB для добавления времени и т. Д., Чтобы сэкономить время и узнать больше о кодировании.
Мой класс сначала создает фон, затем я добавляю к этому UIButton, но по какой-то причине текст не отображается, а также щелчок не срабатывает.
Файл пользовательского класса h:
@interface menuViewone : UIView {
IBOutlet UIView *menuback;
}
-(void)nextPage;
-(void)menubackground;
-(void)nextButton;
Мой пользовательский класс mfile:
-(void)nextPage{
NSLog(@"Next Page Clicked");
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
-(void)menubackground{
NSLog(@"Menu Background Loaded");
menuback = [[UIView alloc] initWithFrame:CGRectMake(0, 410, 320, 50)];
[menuback setBackgroundColor:[UIColor yellowColor]];
[self addSubview:menuback];
[menuback release];
[self nextButton];
}
-(void)nextButton{
NSLog(@"Create Next Button");
UIButton *nextBtn = [UIButton buttonWithType:UIButtonTypeCustom];
nextBtn.frame = CGRectMake(0, 410, 60, 50);
[nextBtn setBackgroundColor:[UIColor redColor]];
nextBtn.titleLabel.text = @"next";
nextBtn.titleLabel.textColor = [UIColor blackColor];
[nextBtn setTitle:@"Next" forState:UIControlStateNormal];
[nextBtn addTarget:self action:@selector(nextPage:) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:nextBtn];
}
Я вызываю его в своем основном файле m, используя:
#import "menuViewone.h"
.......
- (void)viewDidLoad
{
menuViewone *menu = [[menuViewone alloc] init];
[menu menubackground];
[self.view addSubview:menu];
[menu release];
[super viewDidLoad];
}
Так что в настоящий момент я получаю желтый фон нижнего колонтитула с красной кнопкой слева, нонет действий или метки
1: что происходит?2: я делаю это правильно?
ОБНОВЛЕНИЕ Я решил проблему с текстом, не показывающим, который был, когда я отпускал кнопку, которая автоматически отпускала, как упомянуто ниже.
Итак, теперь моя единственная проблема в том, что событие click не работает, и я не получаю вывод NSLog из метода - (void) nextPage {...
Вот тестодин, который я создал:
UIButton *nextBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[nextBtn setFrame:CGRectMake(0, 100, 80,40)];
[nextBtn setTitle:@"Button Title" forState:UIControlStateNormal];
[nextBtn.titleLabel setFont:[UIFont boldSystemFontOfSize:10]];
[nextBtn addTarget:self action:@selector(nextPage) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:nextBtn];
, но кажется, что [nextBtn addTarget: self action: @selector (nextPage :) forControlEvents: UIControlEventTouchUpInside];
не запускается?
ДРУГОЕ ОБНОВЛЕНИЕ:
Я попробовал следующий фрагмент кода на контроллере root / my view.
viewController.h - (void) nextPage: (id) sender;
viewController.m
-(void)nextPage: (id)sender
{
NSLog(@"Next Page Clicked");
}
- (void)viewDidLoad
{
CGRect buttonFrame = CGRectMake( 10, 280, 100, 30 );
UIButton *button = [[UIButton alloc] initWithFrame: buttonFrame];
[button setTitle: @"My Button" forState: UIControlStateNormal];
[button setTitleColor: [UIColor redColor] forState: UIControlStateNormal];
[self.view addSubview: button];
[button addTarget: self
action: @selector(nextPage:)
forControlEvents: UIControlEventTouchDown];
.....
И когда я попробовал это, метод clicked сработал.
Так что это должно быть как-то связано с моим пользовательским представлением классаи настройки моей кнопки, как будто ее не распознал ?? ??
Спасибо Si