Załóżmy, że mamy dziesięć stron.Zdarzenie UIControlEventValueChanged nie jest wyzwalane dla UIPageControl konsekwentnie
obsługi zdarzeń dla zdarzenia w brzmieniu jak poniżej:
Uruchom aplikację. Teraz na dziesięciu stronach domyślnie wybierana jest strona 1 (indeks 0). Dotknij drugiej strony lub trzeciej strony. Zdarzenie nie zostanie uruchomione. Jeśli wybrana zostanie ostatnia strona, zdarzenie zostanie uruchomione. To samo dzieje się z ostatnią stroną. Po wybraniu ostatniej strony wybierz poprzednią stronę. Zdarzenie nie zostanie wyzwolone, ale jeśli wybierzesz pierwszą stronę, zdarzenie nie zostanie uruchomione.
Aby zobaczyć łatwą demonstrację tym przypadku, należy pobrać przykładowe UICatalog i otwórz ControlsViewController.m i zmienić UIControlEventTouchUpInside do UIControlEventValueChanged w linii nr 375.
- (UIPageControl *)pageControl
{
if (pageControl == nil)
{
CGRect frame = CGRectMake(120.0, 14.0, 178.0, 20.0);
pageControl = [[UIPageControl alloc] initWithFrame:frame];
[pageControl addTarget:self action:@selector(pageAction:) forControlEvents:UIControlEventValueChanged];
// in case the parent view draws with a custom color or gradient, use a transparent color
pageControl.backgroundColor = [UIColor grayColor];
pageControl.numberOfPages = 10; // must be set or control won't draw
pageControl.currentPage = 0;
pageControl.tag = kViewTag; // tag this view for later so we can remove it from recycled table cells
}
return pageControl;
}
@jrtuton: Dzięki. Kiedy testowałem aplikację na iPadzie, byłem w stanie lepiej zrozumieć tę sprawę. – Krishnan