2011-01-28 37 views
0

我遇到了一个令我疯狂的问题......我知道它一定是一个简单的修复,但我在网上找不到任何东西(但是!可能正在寻找错误的地方)。子视图中的UIView起源

我有一堆,我在视图中放置一个循环按钮:

//make the button smaller and position 
     CGRect buttonFrame = button.frame; 
     buttonFrame.size = CGSizeMake(41, 41); 
     buttonFrame.origin = CGPointMake(10+(43*i), 415); 
     button.frame = buttonFrame; 

这个工作很大......但现在我想将它们添加到另外的看法,它们就会消失。问题的代码行是:

buttonFrame.origin = CGPointMake(10+(43*i), 415); 

我相信,这一定是工作过self.view的坐标,而不是保存按钮新的子视图。我是否需要一个新的CGContext用于超级视图。

我想是这样的:

buttonFrame.origin = [newView CGPointMake(10+(43*i), 415)]; 

但导致各种错误。

谢谢你的时间!

回答

1

分配为一个视图的帧中的CGRect的原点的偏移,该视图将被放置在从它的上海华。因此,如果您使用CGRect(100,100,200,200),视图将在原点右侧100像素,向南100像素(还请记住iOS视图坐标系原点在左上角),尺寸为200x200。

你的按钮将是415个像素的局部原点(左上角)的是上海华以下,可以把它拿出来看。

+0

非常感谢,这是显而易见的痛苦。我需要更多的睡眠。 – 2011-01-28 16:52:31

0

buttonFrame.origin = [NewView的CGPointMake(10+(43 * i)中,415)]; - 这行代码没有意义,因为CGPointMake是C函数,而不是ObjectiveC方法,因此您不能将它发布为对象的消息。 如果你想添加子视图,你必须使用[newView addSuview:button];并确保你已将视图添加到另一个视图。