添加具有多个视图的UIView时,UIScrollView滞后

时间:2012-04-30 16:48:42

标签: iphone uiview uiscrollview lag uiscrollviewdelegate

我一直在使用Crosswords应用程序一段时间,这个问题不断回归我的尝试。

实际游戏在UIScrollView中运行,因为播放器应该能够缩放,平移等等。

在UIScrollview中,我添加了一个UIView。首先,我尝试将多个UIImageViews和UILabels添加到UIView,但是导致滚动性能非常糟糕。

现在我尝试创建3个子类UIViews,我为每个子类写了一个自定义的drawRect方法。我需要3个UIVIews,因为只有两个需要重绘,但不能同时重绘。第三个包含不变的线索数。

我的UIScrollView层次结构如下所示:

UIScrollView
   UIView
      UIImageView (show the game board image)
      UIView (shows the marked row/column)
      UIView (shows the text the user writes)
      UIView (shows the clue numbers)

我认为问题是我在一个UIView中有UIImageView + 3 UIViews。当我尝试制作这个层次结构时,它不会滞后,但我无法缩放,平移,滚动等。:

UIScrollView
   UIImageView (show the game board image)
   UIView (shows the marked row/column)
   UIView (shows the text the user writes)
   UIView (shows the clue numbers)

请你试着指导我正确的方向。如果我不需要改变太多,我会很感激,因为三个UIVIews中的代码都很长。

提前致谢:)

修改

屏幕截图:http://crosswords-plus.com/puzzles/screen.png

1 个答案:

答案 0 :(得分:0)

首先,我建议缩小你的UIScrollView并拉出包含线索的UIView。听起来它不需要平移/缩放,所以你只是通过将它包含在UIScrollView中来增加开销。

其次,如果没有看到你的实现,很难给出很多答案,但在我看来,可以将UIImageView / UIView / UIView层次结构转换为1个子类,绘制空白,黑色或填充方块加上行/列编号必要时。这样,你在UIScrollView中只有1个UIView,所有这些都可能更简单。

这有用吗?您是否有理由使用UIImageView作为背景?您是否有理由将行/列编号与用户输入的文本分开?