Mam aplikację z kilkoma UITableViews, a jeśli jeden z nich jest pusty, chciałbym wyświetlić trochę tekstu pomocy, unoszącego się przed UITableView:

„Wygląda na to, że jeszcze nic nie utworzyłeś dla tej listy. Dokonaj pierwszego wpisu, dotykając przycisku powyżej”.

Jak przedstawić ten widok, pływający przed UITableView?

  1. Jaka metoda UITableViewDelegate zostałaby użyta do przedstawienia tego widoku?
  2. Jak wyglądałby kod prezentujący widok?
  3. Jaka metoda UITableViewDelegate zostałaby użyta do ukrycia tego widoku, gdy użytkownik doda zawartość?

Oto szybka makieta:

Mockup

1
bryanjclark 8 luty 2012, 10:23

3 odpowiedzi

Najlepsza odpowiedź

Zadeklaruj w pliku .h

UIView * root;

W pliku .m

Importuj QuartzCore/QuartzCore.h

- (void)viewDidLoad
{

[super viewDidLoad];

    root = [[UIView alloc] initWithFrame:CGRectMake(60, 50, 220, 250)];
    root.backgroundColor=[UIColor grayColor];
    root.layer.cornerRadius=10;
    UILabel *label=[[UILabel alloc] initWithFrame:CGRectMake(10, 100, 200, 50)];
    label.backgroundColor=[UIColor clearColor];
    label.numberOfLines=3;
    label.font=[UIFont fontWithName:@"Arial" size:14];
    label.lineBreakMode=UILineBreakModeTailTruncation;
    label.textColor=[UIColor whiteColor];
    label.text=@"Make your first entry by tapping the button at the top of the screen";
    [root addSubview:label];
    [self.view addSubview:root];
}

Wewnątrz przycisku Metoda zdarzenia

[root usuńFromSuperview];

2
Mudit Bajpai 8 luty 2012, 11:06

W widokuDidLoad/Appear, utwórz widok i dodaj go jako widok podrzędny [self.view addSubview:infoView] . po kliknięciu zdarzenia przycisku + usuń go z podglądu [infoView removeFromSuperView]

1
Saurabh Passolia 8 luty 2012, 10:35

Utworzyłbym/usunąłbym widok w numberOfRowsInSection (jeśli jest to 0, to pokaż widok) lub jakkolwiek to się nazywa. Jeśli chodzi o sam widok, miej UILabel w niestandardowym widoku. Aby dodać zaokrąglone rogi itp., możesz uzyskać dostęp do warstwy widoku, którą jest CALayer. Aha i upewnij się, że masz ivar do widoku, abyś mógł go łatwo usunąć i sprawdzić, czy jest widoczny. I upewnij się, że zawsze ponownie ładujesz widok tabeli, gdy pokazujesz swój widok, w przeciwnym razie numberOfRowsInSection nie zostanie wywołany.

0
jrtc27 8 luty 2012, 11:18