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

我不会编辑你的代码,但我可以给你一个提示。看,当你填充滚动窗口时,通过添加一个图像视图,在 NSMutableDictionary(实例变量)中添加一个条目,所以键是 AZ 字母,值是图像的 x 位置。当您完成填充滚动视图时,您还将拥有包含所有图像位置的字典(并且您只需要 x)和相应的字母。现在您点击“J”并点击“搜索” - 您解析字典以使用键“J”查找对象并读取它的值。使用这个 (x) 值来设置你的 srollview 的 contentOffset。多田!

于 2012-07-20T06:36:18.497 回答