2010-06-04 4 views
1

Je souhaite pouvoir intégrer un UIWebView dans la cellule d'un tableau (style groupé).Incorporation d'un long UIWebView dans une cellule de vue de table avec différentes hauteurs

La vue Web est longue (plus longue que l'écran), et je veux qu'elle affiche sa pleine longueur. Il n'y a donc pas de défilement dans la vue web elle-même, juste sur la table.

------------------------ 
| a normal table cell | 
------------------------ 
| a normal table cell 2| 
------------------------ 
| a long webview  | 
| which doesn't scroll| 
| within itself  | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
------------------------ 

La vue Web aura différentes hauteurs alors comment puis-je découvrir la hauteur de la WebView afin d'ajuster la hauteur en heightForRowAtIndexPath?

Répondre

0

Voilà comment vous pouvez le faire, mais voir ma mise en garde ci-dessous:

Vous pouvez charger la vue Web, utilisez alors une fonction javascript pour déterminer la hauteur du contenu. Vous pouvez alors utiliser [myWebView stringByEvaluatingJavaScriptFromString: ..] pour obtenir la hauteur.

Voici le problème. Les UIWebViews sont assez lents. La table ne peut pas se présenter jusqu'à ce qu'elle connaisse la hauteur des lignes, car c'est ainsi qu'elle détermine les cellules de table à extraire. Le défilement de votre vue de table sera donc saccadé, car chaque fois que vous faites défiler une nouvelle cellule, la hauteur doit être calculée.

Il y a deux approches que vous pouvez prendre:

1) Ne pas utiliser un UIWebView embarqué dans un UITableCell. Au lieu de cela, utilisez un UILabel et déterminez sa hauteur en utilisant certaines des méthodes de commodité de NSString pour cela.

2) Utilisez un UIWebView pour l'ensemble de la table. Vous pouvez très bien simuler une vue de table en faisant cela, et vous obtiendrez l'interface utilisateur dont vous avez besoin. Pour gérer des choses comme les clics, utilisez les liens de chargement d'URL fournis par UIWebViewDelegate.

Questions connexes