7
votes

Liste des points de balle iPhone

Y a-t-il un moyen de faire une liste de points de balle dans iPhone?

Si vous copiez et collez une liste de points de balle dans une vue UitextView dans IB, alors cela apparaît. Est-ce qu'il y a de toute façon pour le faire de manière programmatique?

merci

Tom


2 commentaires

Oui, ça marche - et si vous copiez et coller du mot cela fonctionne également (je suppose que c'est parce que c'est le même personnage), mais parce qu'il n'y a pas de formatage et aucune garantie de soutien, j'ai décidé que le vôtre était le meilleur et «le plus vrai» réponse. Cependant, dans mon application, j'ai utilisé la deuxième réponse.


codeload.github.com/eyalc/eclistview/zip/master


4 Réponses :


4
votes

Autant que je connaisse le seul moyen d'atteindre cela (et presque tout autre texte riche formaté) sur l'iPhone consiste à utiliser un UIWebView et à insérer le code HTML comme suit:

for(UIView* v in webView.subviews){
    if([v isKindOfClass:[UIScrollView class] ]){

        //disable bouncing
        UIScrollView* sv = (UIScrollView*) v;
        sv.alwaysBounceVertical = NO;
        sv.alwaysBounceHorizontal = NO;

        //disable scroll-shadows
        for (UIView *subView in [sv subviews])
            if ([[[subView class] description] isEqualToString:@"UIImageView"])
                subView.hidden = YES;
    }
}


6 commentaires

Je déteste uiwebviews - ils me donnent ce gouttière "rebondir" moche en haut et en bas. :( mais merci


Je partage vos sentiments sur webviews, mais ils peuvent être améliorés. Jetez un coup d'œil à mon poste édité!


Itération via les sous-espions d'un uiwebview est considéré comme une API privée. Ne supposez pas que ce sera accepté.


Vous ne devriez pas utiliser la description des classes, mais vous devez utiliser IskindofClass:, comme la description peut changer à tout moment.


J'ai soumis une application itération via UiWebViews Sousviews pour la vue de défilement afin que ce soit correct, mais ne me citez pas.


C'est dans l'App Store pendant 6 mois maintenant.



38
votes

Le caractère "balle" est au point de code Unicode U + 2022. Vous pouvez l'utiliser dans une chaîne avec @ "\ u2022" code> ou [nsstring stringwithFormat: @ "% c", 0x2022] code>.

Le caractère "Line Flight" est au point de code Unicode U + 000A et est utilisé comme nouveau personnage de Uikit. Vous pouvez l'utiliser dans une chaîne avec @ "\ n" code>. P>

Par exemple, si vous aviez une gamme de chaînes, vous pouvez faire une liste à puces avec quelque chose comme ceci: P>

NSArray * items = ...;
NSMutableString * bulletList = [NSMutableString stringWithCapacity:items.count*30];
for (NSString * s in items)
{
  [bulletList appendFormat:@"\u2022 %@\n", s];
}
textView.text = bulletList;


2 commentaires

Je n'ai pas pu obtenir l'indentation bien fonctionner. Les balles sont simplement imprimées sur la même ligne: "* Texte * Text2". Y a-t-il une solution pour cela?


@Polyshell Le code ci-dessus ne tente pas de faire une indentation appropriée. Si vous voulez dire les pauses de la ligne, essayez de régler label.numberoflines = 0



2
votes

Swift-5

En écrivant simplement la réponse @tc forte> Réponse Swift P>

let items: [String] = ["Point-1", "Point-2", "Point-3"]
var bulleLists: [String] = []
for item in items {
     bulleLists.append("\u{2022}" + item + "\n")
}
textview.text = bulleLists.joined()


0 commentaires

0
votes
• Apple
• Banana

0 commentaires