Iphone 在另一个类中使用ScrollView对象

Iphone 在另一个类中使用ScrollView对象,iphone,ios,xcode,uiscrollview,Iphone,Ios,Xcode,Uiscrollview,请帮帮我 有两个类,FirstViewCtrl和SecondViewCtrl。在FirstViewCtrl中,我有一个UIView,并且在该``中放置了一个UIScrollVIew。在SecondViewCtrl中,我有UIView(由3个文本字段组成) 现在,我已经将该UIView从SecondViewCtrl链接到了FirstViewCtrl[\u bgcrollview addSubview:SecondViewCtrl.view] 直到现在一切都很好。 我想在这里实现一个小任务,当用户单

请帮帮我

有两个类,FirstViewCtrl和SecondViewCtrl。在FirstViewCtrl中,我有一个UIView,并且在该``中放置了一个
UIScrollVIew
。在SecondViewCtrl中,我有UIView(由3个文本字段组成)

现在,我已经将该
UIView
从SecondViewCtrl链接到了FirstViewCtrl
[\u bgcrollview addSubview:SecondViewCtrl.view]

直到现在一切都很好。 我想在这里实现一个小任务,当用户单击文本字段时,键盘布局弹出,背景屏幕应该向上移动(我的意思是键盘不应该隐藏文本字段)。 我以前已经做到了,但在这里它看起来对我来说没有什么不同。 因为UIScrollView位于FirstViewCtrl中,而TextField位于SecondViewCtrl(即UIView)中。我可以在SecondViewCtrl中获取文本字段shouldReturn。如何在此处移动背景屏幕

简单地说,
\u bgScrollView
在FirstViewCtrl中,但我在SecondViewCtrl中处理文本字段。当用户选择文本字段时,如何移动背景?
我在这里真的很困惑,请帮帮我

只需将“滚动视图”创建为FirstViewController的
属性即可访问SecondViewController中的“滚动视图”(
UIScrollView

in FirstViewController.h

UIScrollView *_bgScrollView;

@property (nonatomic, retain) UIScrollView *_bgScrollView;

in FirstViewController.m 

@synthesize *_bgScrollView;
现在,您可以通过使用作为FirstViewController属性的_bgScrollView来访问SecondViewController中的_bgScrollView。此外,要滚动bGscroll视图,您可以使用此功能-

- (void)scrollViewToCenterOfScreen:(UIView *)theView {  
    CGFloat viewCenterY = theView.center.y;  
    CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];  

    CGFloat availableHeight = applicationFrame.size.height - 200;     

    CGFloat y = viewCenterY - availableHeight / 2.0;  
    if (y < 0) {  
        y = 0;  
    }  
    [scrollView setContentOffset:CGPointMake(0, y) animated:YES];  

}
-(void)滚动视图到EnterofScreen:(UIView*)视图{
CGFloat viewCenterY=视图中心y;
CGRect applicationFrame=[[UIScreen mainScreen]applicationFrame];
CGFloat availableHeight=applicationFrame.size.height-200;
CGFloat y=viewCenterY-可用高度/2.0;
如果(y<0){
y=0;
}  
[scrollView setContentOffset:CGPointMake(0,y)动画:是];
}

中介绍了防止键盘覆盖文本字段的一般步骤,并附有示例代码。您需要订阅键盘显示/隐藏通知,并调整滚动视图的
contentInset
属性

如果不想让第二个视图控制器了解第一个视图控制器,可以沿着视图层次结构查找滚动视图。例如:

- (UIScrollView *)scrollViewContainingView:(UIView *)view {
    for ( ; view; view = view.superview) {
        if ([view isKindOfClass:[UIScrollView class]])
            return (UIScrollView *)view;
    }
    return nil;
}

您可能需要发布更深入、更易读的信息,但将
cGraffeTransform
(假设您使用了CG动画)应用到
SecondViewCtrl
是否有任何好处?请发布一些代码,这比解释更容易理解。我将发布一些代码,仅供参考,代码正在运行,我只需要在键盘布局弹出时移动背景,然后查看上面的第二段;在SecondViewCtrl-(BOOL)textField应返回:(UITextField*)textField{[textField resignFirstResponder];返回YES;}-(BOOL)textField应开始编辑:(UITextField*)textField{NSLog(@“Text Editing”);返回YES;}对不起,先生,我不明白您的意思,如何在SecondViewCtrl中使用它?实际上,我计划在SecondViewCtrl中使用UIScrollView对象,以便在键盘出现时可以向上滚动视图。您的FirstViewController和SecondViewController是UINavigation控制器的一部分吗?