Voici mon code:UIView ne précise pas bon
frame = _pageContentView.frame;
NSLog(@"%f; %f; %f; %f;", frame.origin.x, frame.origin.y, frame.size.width, frame.size.height);
frame.size.height = pageContentView.frame.size.height;
NSLog(@"%f; %f; %f; %f;", frame.origin.x, frame.origin.y, frame.size.width, frame.size.height);
_pageContentView.frame = frame;
NSLog(@"%f; %f; %f; %f;", _pageContentView.frame.origin.x, _pageContentView.frame.origin.y, _pageContentView.frame.size.width, _pageContentView.frame.size.height);
Et le NSLog envoie ces valeurs:
0,000000; 0,000000; 317.648956; 0,000000;
0,000000; 0,000000; 317.648956; 768,000000;
0,000007; 0,000004; 317.648956; 768,000000;
Pouvez-vous voir? Dans la dernière rangée, les coordonnées x et y sont un peu folles ... D'où viennent ces chiffres? Quel est le problème ici?
Mais, quel calcul est fait? –
Qui sait? On s'en fout? Il pourrait être aussi simple que des trucs qui passent d'un double à un autre; ou crud à gauche des itérations précédentes dans la FPU. L'écart est tout à fait hors de propos et devrait simplement être ignoré. (0,000007 représente 0,0007%, ou un 7 cent millièmes de pixel, c'est-à-dire quelque chose comme 35 nanomètres). –
Les ordinateurs ne peuvent pas faire de vrais calculs. Tous les nombres à virgule flottante ont construit la variabilité en raison des compromis que les ordinateurs doivent faire dans le traitement des mathématiques en particulier dans le cas de nombres irrationnels. Il y a un papier célèbre sur le sujet. http://docs.sun.com/source/806-3568/ncg_goldberg.html – TechZen