Я новичок в программировании на iphone, я пытаюсь разработать приложение, использующее управление страницами. Цвет фона моего вида белый, а по умолчанию контроллеры страниц - белый, что делает управление страницами невидимым на мой взгляд, поэтому я изменил фоновый цвет элемента управления страницы, чтобы сделать его видимым. Теперь вид кажется исправленным и плохим. Есть ли способ изменить только цвет точек для управления страницей?
Заранее спасибо
Мы настроили UIPageControl для использования пользовательского изображения для индикатора страницы, я перечислил внутренности этого класса ниже .. .
GrayPageControl.h
@interface GrayPageControl : UIPageControl
{
UIImage* activeImage;
UIImage* inactiveImage;
}
GrayPageControl.m
-(id) initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
activeImage = [[UIImage imageNamed:@"active_page_image.png"] retain];
inactiveImage = [[UIImage imageNamed:@"inactive_page_image.png"] retain];
return self;
}
-(void) updateDots
{
for (int i = 0; i < [self.subviews count]; i++)
{
UIImageView* dot = [self.subviews objectAtIndex:i];
if (i == self.currentPage) dot.image = activeImage;
else dot.image = inactiveImage;
}
}
-(void) setCurrentPage:(NSInteger)page
{
[super setCurrentPage:page];
[self updateDots];
}
Затем в контроллере представления мы просто используем его как обычный UIPageControl
IBOutlet GrayPageControl* PageIndicator;
Редактировать:
В контроллере представления с GrayPageControl у меня есть IBAction, который связан с событием GrayPageControl.ValueChanged.
-(IBAction) pageChanged:(id)sender
{
int page = PageIndicator.currentPage;
// update the scroll view to the appropriate page
CGRect frame = ImagesScroller.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
[ImagesScroller scrollRectToVisible:frame animated:YES];
}