Czy ktoś może mi pomóc, jak sprawić, aby UIView został stworzony w kodzie, aby był na szczycie wszystkich innych widoków? gdzie tableView jest widokiem nadrzędnym, a subSelectionView jest moim niestandardowym widokiem rodzeństwa, chcę zrobić to na wierzchu tabeliView .. Mam ten kod poniżej:Umieść UIView na górze wszystkich innych widoków.
To jest pełny kod źródłowy dla mojej didSelectRowAtIndexPath :, skąd programowo dodać instancję UIView ..
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Execute upon selection
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[[tableView viewWithTag:199]removeFromSuperview];
// Get the cell size
CGSize cellSize = [tableView cellForRowAtIndexPath:indexPath].frame.size;
// Contact Details Container
UIView *subSelectionView;
if(indexPath.row < [contacts count] - 6)
subSelectionView = [[UIView alloc]initWithFrame:CGRectMake(10, 0, (int)cellSize.width - 20, (int)cellSize.height + 130)];
subSelectionView.backgroundColor = [UIColor grayColor];
subSelectionView.layer.borderColor = [UIColor grayColor].CGColor;
subSelectionView.layer.borderWidth = 1;
subSelectionView.alpha = 0.9;
subSelectionView.tag = 199;
subSelectionView.layer.cornerRadius = 5.0;
// Contact Name Container
UIView *contactNameSubSelectionView;
if(indexPath.row < [contacts count] - 6)
contactNameSubSelectionView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, (int)cellSize.width - 20, (int)cellSize.height)];
contactNameSubSelectionView.backgroundColor = [UIColor grayColor];
contactNameSubSelectionView.alpha = 0.5;
[subSelectionView addSubview:contactNameSubSelectionView];
// Contact Name Label
Contacts *contact = [self.contacts objectAtIndex:indexPath.row];
NSString *contactName = [NSString stringWithFormat:@" %@ %@ ", contact.fname, contact.lname];
UILabel *contactNameLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, (int)cellSize.width, (int)cellSize.height)];
contactNameLabel.layer.cornerRadius = 4.0;
[contactNameLabel setText: contactName];
[contactNameLabel setTextColor:[UIColor blackColor]];
[contactNameLabel setFont:[UIFont boldSystemFontOfSize:[UIFont systemFontSize]]];
[contactNameSubSelectionView addSubview:(UIView *)contactNameLabel];
// Buttons
UIButton *buttonMobile = [[UIButton alloc]initWithFrame:CGRectMake(10, cellSize.height + 10, 30, 30)];
buttonMobile.layer.borderWidth = 1;
[buttonMobile setTitle:@"..." forState:UIControlStateNormal];
[buttonMobile addTarget:self action:@selector(btPressed:) forControlEvents:UIControlStateNormal];
[subSelectionView addSubview:(UIView *) buttonMobile];
[[tableView cellForRowAtIndexPath:indexPath]insertSubview:subSelectionView aboveSubview:self.view];
[self.parentViewController.view bringSubviewToFront:subSelectionView];
[tableView reloadData];
}
ale nie działa ..
Poniższa grafika przedstawia moją subSelectionView, przycisk jest w nim i subSelectionView jest w tableview. Teraz, gdy kliknąłem ten przycisk, problem polega na tym, że nie mogę go kliknąć. Skupia się bezpośrednio na tableView nawet przy obecności moich kodów. Czy ktoś może mi pomóc proszę? ....
Dzięki pete .. ja już przeglądowi i ustawić przycisk umożliwiło właściwość tak, ale nadal nie działa .. hmmm .. mam rację przy użyciu tego kodu: [[tableView cellForRowAtIndexPath: indexPath] insertSubview: subSelectionView aboveSubview: self.view ] ;? – Aldee
Jeśli widzisz podgląd, to tak - problem polega na tym, że nie otrzymuje on zdarzeń. –