Как отобразить текст в две колонки на iPad - PullRequest
5 голосов
/ 01 ноября 2011

Я хочу отобразить определенный текст в двух столбцах, таких как этот:

================
line1  line4  ||
line2  line5  ||
line3  line6  ||
------------  ||
prev  next    ||

================

Я делаюне нужно, чтобы текст имел вертикальную или горизонтальную прокрутку, просто поместился внутри области.

Я не знаю, какой View или макет использовать - поскольку я новичок в разработке IOS -

спасибо

Ответы [ 4 ]

4 голосов
/ 01 ноября 2011

Если у вас есть некоторые навыки работы с html, вы можете использовать UIWebView для отображения текста любым способом, который вы можете использовать в разметке.

1 голос
/ 23 ноября 2011

На странице http://www.cocoanetics.com/2011/01/befriending-core-text/ объясняется, как отображать текст с двумя столбцами с помощью инфраструктуры CoreText и NSAttributedString. Я надеюсь, что это поможет вам.

0 голосов
/ 08 октября 2015

Отображение текста в двух столбцах с использованием UITextview:

//Declare global variables. 

    NSLayoutManager *_layoutManager;
    NSTextStorage *_textStorage;
    UIScrollView *scrollView;

//Create a scrollview and add it on the main view.

 scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(10, 10, screenWidth-20, screenHeight-20)];

        [self.view addSubview:scrollView];

//Get the file url path of .txt file.

 NSURL *contentURL = [[NSBundle mainBundle] URLForResource:@"introduction" withExtension:@"txt"];

//Create text storage :
_textStorage = [[NSTextStorage alloc] initWithFileURL:contentURL
                                                  options:nil
                                       documentAttributes:NULL
                                                    error:NULL];

//Create a layout manager and add it to textstorage
 _layoutManager = [[NSLayoutManager alloc] init];
    [_textStorage addLayoutManager:_layoutManager];

//then call the method

 [self layoutTextContainers];

определение метода:

   -(void)layoutTextContainers{

        NSUInteger lastRenderedGlyph = 0;
        CGFloat currentXOffset = 0;

        while (lastRenderedGlyph < _layoutManager.numberOfGlyphs) {

         CGRect textViewFrame = CGRectMake(currentXOffset, 10,
                                           CGRectGetWidth(scrollView.bounds) / 2,
                                              CGRectGetHeight(scrollView.bounds) - 20);

            CGSize columnSize = CGSizeMake(CGRectGetWidth(textViewFrame) - 20,
                                           CGRectGetHeight(textViewFrame) - 10);

            NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:columnSize];
            [_layoutManager addTextContainer:textContainer];

            // And a text view to render it
            UITextView *textView = [[UITextView alloc] initWithFrame:textViewFrame
                                                    textContainer:textContainer];

            textView.scrollEnabled = NO;
            [introTextScrollView addSubview:textView];

            // Increase the current offset
            currentXOffset += CGRectGetWidth(textViewFrame);

            // And find the index of the glyph we've just rendered
            lastRenderedGlyph = NSMaxRange([_layoutManager glyphRangeForTextContainer:textContainer]);
        }

        // Need to update the scrollView size
        CGSize contentSize = CGSizeMake(currentXOffset, CGRectGetHeight(introTextScrollView.bounds));
        introTextScrollView.contentSize = contentSize;
    }
0 голосов
/ 01 ноября 2011

Я думаю, что вы можете добавить 2 uitextviews с одинаковым размером.В левой вы можете написать строки 1, 2 и 3, а в остальных 4, 5 и 6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...