não delegando UIScrollView não funcionar - ajuda necessária!
-
06-07-2019 - |
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?
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:
- Verifique se eu realmente acrescentou scrollView para self.view após self.view foi carregado
- Verifique se quando eu adiciono scrollView para self.view, é o mesmo objeto que eu tinha quando eu estava atribuindo o delegado
- Checkwhen eu adicionar scrollView esse delegado do scrollView ainda está definido para o modo de exibição do controlador
- Verifique se é auto, em conjunto verdade para o controlador de vista ao atribuir o delegado
- Tente usar um UIScrollView regular e ver se alguma coisa muda