0

見栄えを良くする前に、コードを機能させようとしているだけです。だから私は UIScrollView を機能させようとしています。スクロール ビューをすべて削除すると、ページの両側に 32 個ずつ、合計 64 個のボタンが配置されたきれいにレイアウトされたページができあがります。これらのボタンはほぼミニチュアです。そのため、クリックできるようにズームを実装したかったのです。

現在、Zoom には予期しない結果があります。ページが開始されると、空白です。ズームすると、予期せずグラフの左側の一部がページの右側に表示され、スクロールしようとすると跳ね返ります。しかし、さらにズームすると、ボタンの中央に向かってスクロールできるようになります。スクロール/ズームすると、常に問題が発生したり、バグが発生したりします。だから明らかに使い物にならない。

私のviewDidLoad:

[super viewDidLoad];
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
scroll.minimumZoomScale = 0.5;
scroll.maximumZoomScale = 3.0;
scroll.delegate = self;
    CGFloat yOrigin = self.view.frame.size.width;
    UIView *awesomeView = [[UIView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];

// iterate over values in the staff array
int heightBetweenBrackets = 0;
int widthBetweenBrackets = 0;
int heightFromTop = 45;

for(int i = 0; i < 64; i++)
{
    if(i == 32)
    {
        heightBetweenBrackets = 0;
    }
    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    myButton.frame = CGRectMake(
                                0 + i/32*438,
                                heightFromTop + i%32*3+ heightBetweenBrackets, 
                                35, 6);
    [myButton setTitle:[NSString stringWithFormat:@"%d",i] forState:UIControlStateNormal];
    myButton.titleLabel.adjustsFontSizeToFitWidth = YES;
    [myButton.titleLabel setFont:[UIFont fontWithName:@"Arial" size:7]];
    myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
    //   [myButton addTarget:self action:@selector(chooseWinner:) forControlEvents:UIControlEventTouchUpInside];
    [awesomeView addSubview:myButton];
    heightBetweenBrackets += (i%2  -1 * -1) * 3;
}

[scroll addSubview:awesomeView];
scroll.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height);
[self.view addSubview:scroll];

と:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return self.view;
}

バグがばかげている場合は申し訳ありません.IOSを学んでいます=]お時間をいただきありがとうございます

編集:それを理解しました。

将来の誰かのために:ページネーションスクローラーを移植しましたが、CGFloat yOrigin = self.view.frame.size.width; を保持していたことに気づきませんでした。-- もちろん、これは、表示されているスペースのすぐ右側からビューを開始していました。したがって、最初は空白でしたが、バグのある方法でズームして左側を見ることができました。これを 0 に変更するだけで問題が解決しました。

4

1 に答える 1