Pergunta

Eu estou perdendo a sério o meu cabelo por causa de tarefa simples, que virou-se para o inferno. Então, eu tenho UIScrollView subclasse - MyScrollView e UIViewController subclasse StoryViewController usando esse ponto de vista de rolagem. Eu preciso saber quando rolagem é rolada então o que eu faço? Tento delegar!

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

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

// delegated function
- (void)scrollViewDidScroll:(UIScrollView *)s {
    NSLog(@"TEST");
}

Edit: Alguns NSLogs

Self: <StoryViewController: 0xfce090>
ScrollView Delegate: <StoryViewController: 0xfce090>
WebView Delegate: <StoryViewController: 0xfb1a30>

Edit: UIWebView subclasse (MyWebView), que é subexibição de MyScrollView funciona bem e (void) webViewDidFinishLoad:. (UIWebView *) webView (no mesmo storyviewcontroller.m) imprime mensagem

Sem erros, constrói bem, funciona muito bem. Depois de rolagem - nada é impresso.

O que estou fazendo de errado?

Foi útil?

Solução 3

Assim, mais uma vez, prêmio estupidez vai para sniurkst. Foi, de facto UIWebView que foi incorectly adicionado a UIScrollView, então para mim foi "oh meu deus, meu ponto de vista de rolagem está trabalhando", enquanto ele ainda estava UIWebView rolagem, por si própria.

Desculpe, por minha estupidez. Obrigado a todos por tentar ajudar-me, da próxima vez vou acrescentar mais exemplos de código, para que possa ver o que está acontecendo e rir de meus erros:)

E se alguém me aponte para um exemplo de como usar corretamente ScrollView com WebView para dentro, de modo que ScrollView seria responsável por toda a rolagem, eu ficaria muito grato.

Outras dicas

Este pode ser um arenque vermelho, mas você está chamando de alocação e inicialização, ao invés de alocação e initWithFrame :. Eu suponho que você está adicionando o scrollView em seu método viewDidLoad? É este um controlador baseado em XIB? Já experimentou adicionar o scrollview no arquivo XIB, e arrumar as coisas lá? Já experimentou adicionar outros métodos de delegado?

Você tem certeza que scrollView é de fato o ponto de vista de rolagem que é exibido? Um par de coisas que eu posso pensar que eu iria verificar, a fim de desespero:

  1. Verifique se eu realmente acrescentou scrollView para self.view após self.view foi carregado
  2. Verifique se quando eu adiciono scrollView para self.view, é o mesmo objeto que eu tinha quando eu estava atribuindo o delegado
  3. Checkwhen eu adicionar scrollView esse delegado do scrollView ainda está definido para o modo de exibição do controlador
  4. Verifique se é auto, em conjunto verdade para o controlador de vista ao atribuir o delegado
  5. Tente usar um UIScrollView regular e ver se alguma coisa muda
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top