Я уверен, что я с видом очевидным, как я получил бесчисленные рабочие кнопки ... но ... по какой-то причине это один не сотрудничает ...Почему мой UIButton не отвечает на прикосновения?
Я добавил UIButton
(округленно Rect) к подклассу UIView
(DialogView), который является подпунктом представления моего контроллера представления. Это подобие создается почти полностью в IB. Я подключил кнопку до (IBAction)okButtonPressed:(id)sender
в IB до Touch Up Inside и создал соответствующий метод в DialogView. Однако, когда я прикасаюсь к этой кнопке, это не вызывает метод. userInteractionEnabled is true для просмотра VC, DialogView
иUIButton
.
Думаю, что initWithCoder
должен был сделать некоторые манипуляции с фреймами или что-то, что я добавил, чтобы успешно войти в консоль.
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super initWithCoder:decoder]) {
NSLog(@"DialogView initWithCoder called");
}
return self;
}
В доразведки Я телеграфировал вверх по IBOutlet
к кнопке, а затем, если я пытаюсь изменить titleLabel от контроллера представления я замечаю, что он получить строго-й усеченным. Текст по умолчанию «Press Me!», установленный в IB, отображается хорошо, когда вид сначала рисуется. Но если изменить текст ...
self.DialogView.okButton.titleLabel.text = @"Not Working";
... он получает обрезается до "N ..."
Незнайка, если это связано. Вероятно ...
Кто-нибудь видит, что я здесь испортил?
Edit (добавление кода, связанного с показывая UIButton
):
С View Controller:
self.DialogView = [[[NSBundle mainBundle] loadNibNamed:@"DialogView" owner:self options:nil] objectAtIndex:0];;
self.DialogView.myVC = self;
self.DialogView.backgroundColor = [UIColor clearColor];
self.DialogView.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2);
self.DialogView.nameLabel.text = loan.fullName;
self.DialogView.noteLabel.text = loan.summaryOfLoan;
self.DialogView.amountLabel.text = [currencyFormatter stringFromNumber:loan.originalAmount];
self.DialogView.alpha = 0.0;
[self.view addSubview:DialogView];
В UILabels все отображения, как и ожидалось. Как проблема UIButton
. Я вижу это, я просто не могу с ним взаимодействовать!?!
интерфейс DialogView в:
@class MyViewController;
@interface DialogView : UIView {
IBOutlet UILabel *nameLabel, *noteLabel, *amountLabel;
IBOutlet UIImageView *arrowView;
IBOutlet UIButton *okButton;
MyViewController *myVC;
}
@property (nonatomic, retain) UILabel *nameLabel, *noteLabel, *amountLabel;
@property (nonatomic, retain) UIImageView *arrowView;
@property (nonatomic, assign) MyViewController *myVC;
@property (nonatomic, retain) UIButton *okButton;
- (IBAction)okButtonPressed:(id)sender;
@end
И реализация DialogView в:
#import "DialogView.h"
#import "MyViewController.h"
@implementation DialogView
@synthesize nameLabel, noteLabel, amountLabel, arrowView, okButton;
@synthesize myVC;
- (void)dealloc {
[nameLabel release];
[noteLabel release];
[amountLabel release];
[arrowView release];
[okButton release];
[super dealloc];
}
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
// Initialization code
}
return self;
}
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super initWithCoder:decoder]) {
NSLog(@"DialogView initWithCoder called");
}
return self;
}
- (IBAction)okButtonPressed:(id)sender {
NSLog(@"pressed DialogView OK button");
[self.myVC.navigationController popViewControllerAnimated:YES];
}
- (void)drawRect:(CGRect)rect {
// Drawing code
}
@end
Является ли 'Диалог' отображать сохраненную собственность на' MyViewController'? –
Исправление, которое должно читать «Является ли' DialogView' сохраненным свойством на 'MyViewController'? –
О, и каковы границы' self.DialogView' после того, как вы установили его свойство 'center'? –