2

(中央揃えではなく) 左揃えの UIPageControl を作成しようとしています。サブクラスが をオーバーライドできることがわかりました- (CGSize)sizeForNumberOfPages:(NSInteger)pageCountが、呼び出されていないようです。以下は私のサブクラスがどのように見えるかです:

@implementation CustomPageControl

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

- (CGSize)sizeForNumberOfPages:(NSInteger)pageCount {
    CGSize size = self.bounds.size;
    NSLog(@"%f, %f", size.width, size.height);
    return size;
}

@end

[pageControl sizeToFit][pageControl setNeedsLayout]、およびを明示的に呼び出そうとしています[pageControl setNeedsDisplay]。呼び出されることはありません。

それが呼び出されない理由、それがオーバーライドする正しい方法であるか、またはこれを解決する方法の例があるかどうかについての考えはありますか? ありがとう。

4

1 に答える 1

5

実際、私はそれを使うことができると思っていまし- (CGSize)sizeThatFits:(CGSize)sizeたが、それは必要ないことに気付きました.

ページ数に応じてページコントロールの枠を小さくしました。

self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, y, 16*([photos count]+1), width)];
于 2012-08-20T19:30:44.183 に答える