2

ハイ オール...

uipagecontroller インジケーター (ドット) の色を変更したい...そのために、以下の手順を実行しています。

2 つのメソッドを持つ PageControl という名前の新しいクラスを作成します。

1.-(void) setCurrentPage:(NSInteger)page

2.-(void) setNumberOfPages:(NSInteger)pages

- (void) setCurrentPage:(NSInteger)page 
{
    NSLog(@"setCurrentPage");
    [super setCurrentPage:page];
    NSString* imgActive = [[NSBundle mainBundle] pathForResource:@"activeimage" ofType:@"png"];
    NSString* imgInactive = [[NSBundle mainBundle] pathForResource:@"inactive" ofType:@"png"];
    for (NSUInteger subviewIndex = 0; subviewIndex < [self.subviews count]; subviewIndex++)
    {
        UIImageView* subview= [self.subviews objectAtIndex:subviewIndex];

        if (subviewIndex == page) 
            [subview setImage:[UIImage imageWithContentsOfFile:imgActive]];          
        else
            [subview setImage:[UIImage imageWithContentsOfFile:imgInactive]];           

        subview.frame = CGRectMake(subview.frame.origin.x, subview.frame.origin.y, 10,10);
    }
}


- (void) setNumberOfPages:(NSInteger)pages 
{
    NSLog(@"setNumberOfPages");
    [super setNumberOfPages:pages];
    NSString* img = [[NSBundle mainBundle] pathForResource:@"inactive" ofType:@"png"];
    for (NSUInteger subviewIndex = 0; subviewIndex < [self.subviews count]; subviewIndex++)
    {
        UIImageView* subview= [self.subviews objectAtIndex:subviewIndex];            
        [subview setImage:[UIImage imageWithContentsOfFile:img]];        
        subview.frame = CGRectMake(subview.frame.origin.x, subview.frame.origin.y, 10,10);
    }
}

すでにページコントロールとスクロールビューを備えたビューを1つ持っています...ここで私がしているのは、ペン先からuipagecontrollerを選択し、IDインスペクターを選択し、クラス名PageControl(2つのメソッドを持つ新しく作成されたクラス)を選択することです。色を変更するために機能します画像をスワイプしている間、次のページに移動するためのページコントロールをクリックすると機能しませんでした...

何を含めたいのか、何を間違えているのかわかりません...これを行うために私を助けてください...

ありがとうございました...

4

2 に答える 2

2

ドットのクリックでページのスクロールを有効にする場合は、まず、コードで設定したアクションに xib ファイルの「変更された値」プロパティを関連付ける必要があります。

私のプロジェクトの1つに同じ機能を実装したので、間違いなく機能します。

- (IBAction)changePage:(id)sender {
int page = pageControl.currentPage;
CGFloat pageWidth = scrollView.frame.size.width;

pageWidth = scrollView.frame.size.width;
pageControl.currentPage = page;

CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
[scrollView scrollRectToVisible:frame animated:YES];

// Set the boolean used when scrolls originate from the UIPageControl. See scrollViewDidScroll: above.

}

乾杯

于 2011-01-10T09:02:26.270 に答える