Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 授权UIScrollView不会';t工作-需要帮助!_Iphone_Cocoa Touch_Delegates_Uiscrollview - Fatal编程技术网

Iphone 授权UIScrollView不会';t工作-需要帮助!

Iphone 授权UIScrollView不会';t工作-需要帮助!,iphone,cocoa-touch,delegates,uiscrollview,Iphone,Cocoa Touch,Delegates,Uiscrollview,我的头发掉得很厉害,因为一个简单的任务变成了地狱。所以我有UIScrollView子类-MyScrollView和UIViewController子类StoryViewController,它们使用滚动视图。我需要知道什么时候滚动,我该怎么办?我试着授权 // StoryViewController.h @interface StoryViewController : UIViewController <UIScrollViewDelegate> // StoryViewContr

我的头发掉得很厉害,因为一个简单的任务变成了地狱。所以我有UIScrollView子类-MyScrollView和UIViewController子类StoryViewController,它们使用滚动视图。我需要知道什么时候滚动,我该怎么办?我试着授权

// StoryViewController.h
@interface StoryViewController : UIViewController <UIScrollViewDelegate>

// StoryViewController.m
// init
scrollView  = [[MyScrollView alloc] init];
scrollView.delegate = self;

// delegated function
- (void)scrollViewDidScroll:(UIScrollView *)s {
    NSLog(@"TEST");
}
//StoryViewController.h
@界面StoryViewController:UIViewController
//StoryViewController.m
//初始化
scrollView=[[MyScrollView alloc]init];
scrollView.delegate=self;
//委托职能
-(无效)scrollViewDidScroll:(UIScrollView*)s{
NSLog(“测试”);
}
编辑:一些nslog

Self: <StoryViewController: 0xfce090>
ScrollView Delegate: <StoryViewController: 0xfce090>
WebView Delegate: <StoryViewController: 0xfb1a30>
Self:
ScrollView委托:
WebView代表:
编辑:UIWebView子类(MyWebView)是MyScrollView的子视图,工作正常,(无效)webViewDidFinishLoad:(UIWebView*)webView(在同一个storyviewcontroller.m中)打印消息

没有错误,构建良好,运行良好。滚动后-不会打印任何内容


我做错了什么?

您确定
滚动视图实际上就是显示的滚动视图吗?我能想到的几件事,我会按照绝望的顺序检查:

  • 检查我是否在self.view加载后将scrollView添加到self.view
  • 检查将scrollView添加到self.view时,它是否与分配代理时使用的对象相同
  • 选中当我添加scrollView时,scrollView的委托仍然设置为视图控制器
  • 在指定代理时,检查self是否实际上已设置为视图控制器
  • 尝试使用常规的UIScrollView,看看是否有任何变化

  • 这可能是在转移注意力,但您调用的是alloc和init,而不是alloc和initWithFrame:。我假设您正在viewDidLoad方法中添加scrollView?这是基于XIB的控制器吗?您是否尝试过在XIB文件中添加scrollview,并在那里进行设置?您是否尝试过添加其他委托方法

    所以,愚蠢奖又一次颁给了斯努克斯特。事实上,UIWebView被间接添加到UIScrollView中,所以对我来说,它是“哦,我的天哪,我的滚动视图正在工作”,而它仍然是UIWebView自己滚动

    对不起,我的愚蠢。谢谢大家帮助我,下次我会添加更多的代码示例,这样你们可以看到发生了什么,并嘲笑我的错误:)


    如果有人能给我举个例子,告诉我如何正确使用ScrollView和WebView,让ScrollView负责所有的滚动,我会非常感激。

    谢谢,你的信息很有用,我已经尝试了所有的方法,但还是没有成功。即使我将UIScrollView委托给MyScrollView,也不会发生任何事情。也许委派的职能有问题?它们可能无法访问吗?请澄清一下,您是否尝试过用UIScrollView替换MyScrollView?基于上面的代码,没有理由认为委托不应该工作,所以它是在其他地方坏掉的。是的,我尝试了原始的UIScrollView-没有帮助。另外,它看起来像scrollView.contentSize和.contentOffset保留零。天哪,我在这里做了什么..是否有可能是MyScrollView的子视图UIWebView以某种方式截取并搞乱了一切?我怎样才能测试它呢?对不起,UIWebView如何成为您自己类的子视图?UIWebView甚至不是UIScrollView的子类,它更像一个兄弟类,都有内部管理滚动的UIScroller对象。我应该使用initWithFrame而不仅仅是init吗?我真的不知道这一点,我认为使用“init”并稍后设置帧是正常的。MyScrollView没有视图控制器,因此没有XIB(我对IB非常糟糕,所以我尝试以编程方式尽我所能)。其他委托方法也不起作用。我的头疼得要命,这应该是一项很简单的任务……有没有可能是MyScrollView的子视图UIWebView以某种方式拦截并搞乱了一切?如何测试它?initWithFrame:是视图的指定初始值设定项;您应该从自己的init调用它,如果尚未重写init,则直接调用它。如果您的UIWebView是UIScrollView的子级,则它很可能会捕获您的事件。最简单的尝试是用UIImageView中的固定UIImage替换UIWebView。UIWebView处理自己的滚动;你将很难用这种方式与它互动。对不起,没有办法做到这一点。网络视图处理自己的滚动。您可以使用固定大小的UIWebView并禁用其userInteractionEnabled标志。当然,那么经常接触它是行不通的。我会推荐一种不同的方法。好吧,这很遗憾,因为我需要WebViews富文本与css/js和链接,我还需要知道它的滚动偏移量和滚动时间。。。谢谢你的回答,也许我会想办法的。