Ios 以编程方式控制scrollview—;目标-c
我有一个滚动视图,上面有一些按钮。当单击一个按钮时,我希望它位于屏幕顶部,这样按钮.frame.origin.y就是self.view.frame.origin.y。如何执行此操作?使用Ios 以编程方式控制scrollview—;目标-c,ios,objective-c,cocoa-touch,uiscrollview,Ios,Objective C,Cocoa Touch,Uiscrollview,我有一个滚动视图,上面有一些按钮。当单击一个按钮时,我希望它位于屏幕顶部,这样按钮.frame.origin.y就是self.view.frame.origin.y。如何执行此操作?使用-(void)scrollRectToVisible:(CGRect)rect-animated:(BOOL)animated方法 按下按钮时将视图滚动至所需帧 例如: - (void)buttonPressed:(UIButton*)sender { [scrollView scrollRectToVi
-(void)scrollRectToVisible:(CGRect)rect-animated:(BOOL)animated
方法
按下按钮时将视图滚动至所需帧
例如:
- (void)buttonPressed:(UIButton*)sender
{
[scrollView scrollRectToVisible:desireFrameFromButton];
}
你可以这样做
- (void)buttonPressed:(UIButton*)sender
{
[scrollView setContentOffset:sender.frame.origin animated:YES];
}
请记住,根据定义,视图的
框架
和superview的框架
位于不同的坐标系中。如果要将视图的位置与其superview的位置进行比较,应使用相同的坐标系。使用视图的帧
和父视图的边界
,或者使用-convertRect:toWindow:
等方法将两个帧转换为某个公共坐标系。这也可能会滚动水平轴。现在还不清楚这是否是我们想要的。解决方法是使用发送方的origin.y和scrollview当前的contentOffset.x构建一个CGPoint,将按钮移动到屏幕上可见的位置,但我希望它正好位于顶部