iPhone iOs 5,根据内容高度动态改变滚动查看器的高度不起作用?

时间:2012-07-07 19:07:38

标签: iphone ios ios5 uiscrollview

我正在做的是从数据库中获取数据。然后,我想将这些数据添加到文本视图中,并将这些文本视图添加到滚动查看器中。

但是什么都没有出现。我知道有数据,但它没有显示。很可能我不想设置一些东西。

- (void)viewDidLoad
{
    NSUInteger height = 0;

    for (NSUInteger i = 0; i < [data count]; i++){
        DBMiscData *row = (DBMiscData *) [data objectAtIndex:i];

        if (row.text != nil){
            UITextView *tv = [[UITextView alloc] init];
            [tv setFont:[UIFont boldSystemFontOfSize:12]];
            tv.text = row.text;
            [_scrollerView addSubview:tv];
            [tv sizeToFit];
            height+=(NSUInteger)tv.frame.size.height;
        }
    }

    [_scroller setScrollEnabled:YES];
    [_scrollerView setFrame:CGRectMake(0, 0, 320, height)];
    [_scroller setContentSize:CGSizeMake(320, height)];
    [_scroller addSubview:_scrollerView];

    [super viewDidLoad];
}

更新了代码以及我的目标

我想要的就像我在android中一样简单。

android:layout_width =“fill_parent”和android:layout_height =“wrap_content”。

2 个答案:

答案 0 :(得分:1)

CGRectFromString(aString)不会返回该文本适合的矩形。 如果您有一个类似{{5, 10}, {100, 130}}的字符串,那么该方法会为您创建一个CGRect,其原点为CGPointMake(5,10),大小为CGSizeMake(100,130)。 如果你有像'香蕉'这样的字符串。由此产生的CGRect将始终为CGRectZero(又名CGRectMake(0,0,0,0))。

这就是你的身高为零的原因。

希望这有帮助。

干杯!

答案 1 :(得分:0)

这可能听起来很傻但是如何使用

height+=(NSUInteger)tv.frame.size.height;

而不是

height+=(NSUInteger)tv.bounds.size.height;