iPhone scrollView使用id动态添加元素

时间:2010-08-04 14:50:06

标签: iphone dynamic uiscrollview elements

我想用一些不同的UI元素填充scrollView。 因此我想我会写一个方法来记住scrollView中的当前位置,并将元素添加到当前位置的scrollView。

类似的东西:

- (void)addUIElement:(id)element withWidth:(CGFloat)width andHeight:(CGFloat)height andYGap:(CGFloat)YGap {

    element.frame = CGRectMake(currentScrollPos.x, (currentScrollPos.y + YGap), width, height);
    [scrolly addSubview:element];

    //And then set the current scroll position here
}

不幸的是,当我尝试访问element.frame = ...时,我得到的成员请求不是结构或联合。当我尝试[element frame] = ... Lvalue需要作为赋值的左操作数。

现在,首先我不确定将动态添加到scrollview的最佳方法是什么。也许任何人都有更好或更容易的方法。

然后另一方面,我不明白为什么以上不起作用?!我是否必须将我的元素投射到实际的类?我以为我不必这样做......然后我的方法就不再那么有意义了。或者至少需要更多的步骤......

2 个答案:

答案 0 :(得分:0)

我认为这应该有效:

 [element setFrame:...];

但是,如果你在你的方法中使用不同的UI元素,你可以使你的元素参数UIView *而不是id吗?这样你的代码就可以用于所有UIView子类(我想你真正需要它)

答案 1 :(得分:0)

不同之处在于“id”没有对帧的任何引用。它可能是任何。您希望在方法声明中执行(UIView *)element,或者在调用element.frame时,您可以执行((UIView *)element).frame

(是的,你在屏幕上放置的所有内容都继承自UIView - UIButtonUIImageView等。