UIScrollView设置大小



我有一个UIScrollView(代码中的self.scroller),我想根据数组中对象的数量设置其大小,但当视图出现时,我得到一个错误。错误:

由于未捕获异常而终止应用程序:'NSInvalidArgumentException', reason: '-[__NSCFString setFrame:]: unrecognized selector sent to instance 0x8076080'

下面是问题代码:

for (int i = 0; i < [scoresArray count]; i++) 
{         
        UILabel *scoreLabel = [scoresArray objectAtIndex:i];
        CGRect labelPos = CGRectMake(10, i * 50, 300, 50);
        [scoreLabel setFrame:labelPos];
        [self.scroller setFrame:CGRectMake(0, 90, 320, ([scoresArray count] * 50))];
        [self.scroller addSubview:scoreLabel];
 }

我做错了什么吗?我该怎么修呢?(我只想看到高度)如果有帮助的话。

这里有几个问题。首先,您的内存发生了错误,因此self.scroller不再代表UIScrollView实例的地址。另一类对象在0x8076080,它不是UIScrollView

很可能是一个字符串,这个提示来自上面的异常细节。

出现这个问题的原因有很多。首先,您需要通过检查如何处理内存管理来调试该问题。可能你有self.scroller作为一个弱引用,并且运行时已经释放了该对象。

接下来,我认为你设置的UIScrollView大小不正确。理解UIScrollView有两种尺寸。首先,它的视图的大小。这就是你在应用中看到的"视口"。其次,内容本身的大小。要使滚动视图滚动,必须有比视图端口内可见的更多的内容。否则就没有东西可以滚动了,对吧?

所以,我猜你想要设置self.scroller.contentSize而不是视图本身的框架。

最新更新