見栄えを良くする前に、コードを機能させようとしているだけです。だから私は 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 に変更するだけで問題が解決しました。