Mam widok w mojej aplikacji, który ma wiele przycisków na podstawie liczby elementów zwróconych przez serwer. Jeśli więc serwer zwróci 10 elementów, powinno być 10 przycisków i kliknięcie każdego przycisku powinno wywołać inną osobę.Niestandardowy UIButton dla Iphone
W powyższym celu utworzyłem niestandardową klasę przycisków wywodzącą się z UIButton.
@implementation HopitalButton
@synthesize index;
@synthesize button_type;
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
UIImage* img = [UIImage imageNamed:@"dr_btn.png"];
[img stretchableImageWithLeftCapWidth:10 topCapHeight:10];
[self setBackgroundImage:img forState:UIControlStateNormal];
[self setTitleColor:[UIColor colorWithRed:0.698 green:0.118 blue:0.376 alpha:1] forState:UIControlStateNormal] ;
[self setFont:[UIFont fontWithName:@"Helvetica Bold" size:13]];
self.titleLabel.textColor = [UIColor colorWithRed:178 green:48 blue:95 alpha:1];
self.adjustsImageWhenHighlighted = YES;
}
return self;
}
- (void)dealloc {
[super dealloc];
}
@end
Teraz problem z powyższym kodem polega na tym, że nie tworzy przycisków wyglądających podobnie do przycisków domyślnie utworzonych w narzędziu do tworzenia interfejsu. Brakuje granic.
I tworzyć przyciski powyższego typu według następującego kodu:
HopitalButton* hb = [[HopitalButton alloc] init];
hb.button_type = @"call";
hb.frame = CGRectMake(50, 50 + i * 67, 220, 40);
[self.scroll_view addSubview:hb];
[hb setTitle:[[[self.office_full_list objectAtIndex:i] objectForKey:@"Staff" ]objectForKey:@"FullName"] forState:UIControlStateNormal];
hb.index = [NSNumber numberWithInt:[self.button_items count]];
[self.button_items insertObject:hb atIndex:[self.button_items count]];
[hb addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
nie jestem znalezienie sposobu, aby ustawić typ przycisku dla tego niestandardowego przycisku. Czy mogę to zrobić? Czy istnieje lepszy sposób na zaprojektowanie kodu.
Ale indeks jest ważne dla mojego programu, jak korzystać z indeksu, aby dowiedzieć się, który przycisk został naciśnięty, ponieważ istnieje więcej niż jeden przycisk w widoku – Amal
ustawić znacznik do przycisku. Zaktualizowałem kod – coneybeare
Skąd wziął się obraz rozciągliwego czerwonego przycisku? – bentford