目标C如何将UiLabel添加到UiScrollWiev

时间:2011-01-13 13:00:32

标签: objective-c xcode uiscrollview uilabel

我可以将UiLabel programaticaly添加到UiScrollWiev,因为我已阅读 http://developer.apple.com/library/ios/#documentation/uikit/reference/UILabel_Class/Reference/UILabel.html 我没有找到任何构造函数。 有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

[myScrollView addSubview:myLabel];
[myLabel release];

添加视图发生在父(容器)视图中,而不是正在添加的视图。

此外,一旦将其添加到superview,superview就拥有它,你应该发布它。

编辑:OP问道,“但是,当我创建其中10个时,会发生什么情况?它们会被置于彼此之下?”

没有。每个UIView子类(UIScrollView和UILabel都是)都有一个.frame属性,它包含一个CGRect结构。该字段定义了对象的位置和大小。

所以:

UILabel *one = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 30)];
UILabel *two = [[UILabel alloc] initWithFrame:CGRectMake(0, 35, 200, 30)];
UILabel *three = [[UILabel alloc] initWithFrame:CGRectMake(0, 70, 200, 30)];

[myScrollView addSubview:one];
[myScrollView addSubview:two];
[myScrollView addSubview:three];
[one release];
[two release];
[three release];

那将放置三个UILabel,每个UILabel在滚动视图中200px宽,30px高,所有这些UILabel都在该视图的左侧齐平,一个在顶部右侧,一个35px向下,一个70px向下。

如果UIScrollView的内容大于UIScrollView的.frame,则设置.contentSize属性(同样,CGRect),该属性定义要滚动的内容区域。