2010-09-26 4 views
7

Есть ли способ сделать список маркеров в iphone?iphone bullet список точек

Если вы копируете и вставляете список точек маркера в UITextView в IB, то он появляется. Есть ли способ сделать это программно?

Спасибо

Тома

+0

Да, это работает - и если скопировать и вставить из слова этого также работает (я предполагаю, потому что это тот же характер), но потому, что нет форматирования и нет гарантии на поддержку, я решил, что ваш был лучшим и «самым верным» ответом. Однако в моем приложении я использовал второй ответ. –

+0

https://codeload.github.com/eyalc/ECListView/zip/master – Hemang

ответ

4

Насколько я знаю, единственный способ достичь этого (и почти любого другого форматированного форматируемома) на iPhone, чтобы использовать UIWebView и вставьте HTML-код, как это:

<ul> 
    <li>Bullet</li> 
</ul> 

В ответ на ваш комментарий, UIWebViews может быть "украсили" по следующему миру кода:

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; 
    } 
} 

Я еще не представил это, но я думаю, это должно быть «AppStore safe».

+1

Я ненавижу UIWebViews - они дают мне этот уродливый «отказов» желоба сверху и снизу. :(но спасибо –

+0

Я разделяю ваши чувства по поводу WebViews, но их можно улучшить. Посмотрите на мой отредактированный пост! – Phlibbo

+3

Итерация через subviews 'UIWebView' считается частным API. Не предполагайте, что это будет принято – rpetrich

38

Символ «пуля» находится в кодовой точке Unicode U + 2022. Вы можете использовать его в строке с @"\u2022" или [NSString stringWithFormat:@"%C", 0x2022].

Символ «line feed» находится в кодовой точке Unicode U + 000A и используется как символ новой строки UIKit. Вы можете использовать его в строке с @"\n".

Например, если у вас массив строк, вы могли бы сделать маркированный список с чем-то вроде этого:

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

Это не будет отступ строки, как в «правильном» текстовом процессоре. «Плохие вещи» произойдут, если ваши элементы списка включают символы новой строки (но чего вы ожидали?).

(Apple не гарантирует, что «\ ихххх» ускользает работу в NSString литералов, но на практике они делают, если вы используете компилятор Apple.)

+0

это блестящий (при условии, что он работает) :) Спасибо. –

+0

ya это отлично. Это работает так, как хотелось. –

+0

Мне не удалось заставить отступ работать правильно. Пули только распечатываются в одной строке: «* Текст * Текст2». Это можно как-то исправить? – piperchester

Смежные вопросы