0

我有一个UIScrollViewself.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];
 }

我做错了什么?,我该如何解决?(我只想设置高度)如果有帮助的话。

4

1 回答 1

1

这里有几个问题。首先是你的内存出现了错误,self.scroller不再代表UIScrollView实例的地址。其他一些对象类是 at 0x8076080,它不是 a UIScrollView

最有可能的是,它是一个字符串,并且该提示来自上面的异常详细信息。

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

接下来,我认为您设置的UIScrollView大小不正确。了解 aUIScrollView有两种尺寸。首先,它的视图大小。那就是您在应用程序中看到的“查看端口”。其次,内容本身的大小。要让滚动视图滚动,必须有比在视口中可见的内容更多的内容。否则就没有什么可滚动的了,对吧?

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

于 2013-06-03T09:30:17.933 回答