A peine commencé à utiliser "UIRefreshControl" aujourd'hui, et a remarqué des choses étranges.Bizarrerie UIRefreshControl
Si je crée UIRefreshControl dans InterfaceBuilder et que je câble tout, mon sélecteur ne sera jamais appelé. IB dit que le contrôle devrait se déclencher sur le message "valeur changée", et devrait appeler mon code, mais ne le fait jamais.
J'ai donc abandonné cela dans Interface Builder, et j'ai décidé de le faire dans le code. Pas trop de lignes. Donc, je mets ce code à l'intérieur de ma routine « viewDidLoad »:
self.refreshControl = [UIRefreshControl new];
[self.refreshControl addTarget:self action:@selector(doStuff:) forControlEvents:UIControlEventValueChanged];
NSMutableParagraphStyle* paragraphStyle = [NSMutableParagraphStyle new];
paragraphStyle.alignment = NSTextAlignmentCenter;
self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to refresh" attributes:@{NSParagraphStyleAttributeName : paragraphStyle}];
Il tire très bien, mais l'actualisation de contrôle est visible lorsque la vue apparaît en premier. Je préférerais que ce ne soit pas visible avant que l'utilisateur ne tire sur la table. Je fais un appel à un service web, et j'attends que les résultats reviennent, puis je remplis la table. Donc, vous ne voyez le contrôle que pour une seconde ou deux. Mais ça a l'air bizarre. Donc, les questions sont:
1. Est-ce un bug connu que vous ne pouvez pas câbler le contrôle uniquement à partir d'Interface Builder?
2. Existe-t-il un moyen d'ajouter ce contrôle au contrôleur de table-vue, sans qu'il apparaisse jusqu'à ce que l'utilisateur veuille réellement le voir?
J'ai eu ce bug quand mon contrôleur de vue avait "taille libre" = 1000px. Lorsque je l'ai modifié à fixed, l'actualisation a commencé à fonctionner correctement. – oyatek
en supprimant la "taille de forme libre" dans le storyboard est ce qui a finalement fixé! Merci! –