0

幅は異なるが高さが同じで、2行の並べ替えられた画像を持つカタログアプリを構築しています。添付画像のように、アートワークをscrollviewソートされた順序(AからZ)で描画します。

文字(AからZ)が付いたアルファベット順のバーを使用して検索します。文字Jをタッチすると、jから始まるアートワークが最初に表示されます。私たちが使用しているコードはうまく機能していません。たとえば、JをクリックするとAに移動します。あなたの助けやアドバイスに大いに感謝します。

コードは次のとおりです。

NSString *newStr = [currentArtworkTitle substringWithRange:NSMakeRange(0,1)];       
if([newStr isEqualToString:self.searchString])
  if (scrollViewTopRowWidth > scrollViewBottomRowWidth) {
     xCordForSortedView = scrollViewTopRowWidth - c - imgForButton.size.width;//self.touchLengthCount;//50 ;// -10//c   scrollViewBottomRowWidth 
  }
  else {
      xCordForSortedView = scrollViewBottomRowWidth - c - imgForButton.size.width;// self.touchLengthCount;//40;//scrollViewTopRowWidth
       }

// For shifting the screen
if(scrollViewTopRowWidth > scrollViewBottomRowWidth){
  int tmpMargin = scrollViewTopRowWidth - xCordForSortedView;
  if(tmpMargin < 1024) 
  scrollView.contentSize = CGSizeMake(scrollViewTopRowWidth+1024,scrollView.bounds.size.height);
  }
  else{
  int tmpMargin = scrollViewBottomRowWidth - xCordForSortedView;
  if(tmpMargin < 1024) 
  scrollView.contentSize = CGSizeMake(scrollViewBottomRowWidth+1024,scrollView.bounds.size.height);    
  }
  [scrollView scrollRectToVisible:CGRectMake(xCordForSortedView, 0,scrollView.frame.size.width, scrollView.frame.size.height) animated:YES];
4

1 に答える 1

0

私はあなたのコードを編集しませんが、ヒントを与えることができます。imageview を追加して scrollwiew を設定するときに、NSMutableDictionary (インスタンス変数) にもエントリを追加すると、キーが AZ 文字になり、値が画像の x 位置になります。スクロールビューへの入力が完了すると、すべての画像の位置 (x のみが必要) と対応する文字を含む辞書も作成されます。次に、「J」をタップして「検索」を押します。辞書を解析して、キー「J」でオブジェクトを検索し、その値を読み取ります。この (x) 値を使用して、srollview の contentOffset を設定します。多田!

于 2012-07-20T06:36:18.497 に答える