Как использовать NSString drawInRect для центрирования текста?

Да, вы можете сделать это.

По сути, у вас есть данные в CSV, вы можете написать API для чтения данных из csv и возврата объекта json. Вы можете сделать это, написав asp.net api.

Вот как читать CSV-файл на asp.net http://oniwebblog.blogspot.com/2016/01/aspnet-mvc-web-application-how-to-read_31.html [ 115]

Вот ссылка на сборку .net web api Написать веб-API

На стороне клиента вы можете использовать jquery для вызова API и получения данных json.

Теперь для построения местоположения можно использовать API Google для загрузки карты и рисования точек.

Вот как вы можете нарисовать значок на карте Google

В javascript вы можете использовать функцию setTimeout для вызова определенной функции через определенный интервал.

40
задан mdml 6 November 2013 в 01:16
поделиться

5 ответов

Выравнивание по вертикали необходимо будет сделать себя ((высота представления + высота строки)/2). Выравнивание по горизонтали можно сделать с:

NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
style.alignment = NSTextAlignmentCenter;
NSDictionary *attr = [NSDictionary dictionaryWithObject:style forKey:NSParagraphStyleAttributeName];
[myString drawInRect:someRect withAttributes:attr];
91
ответ дан ricardokrieg 27 November 2019 в 01:01
поделиться

Ну, drawInRect только хорош для основного текстового рисунка (другими словами, система решает, где расположить Ваш текст) - часто единственный способ нарисовать текст, расположенный, где Вы хотите, должен просто вычислить то, что указывает, что Вы хотите это в и используете drawAtPoint:withAttributes: NSSTRING.

кроме того, sizeWithAttributes NSSTRING чрезвычайно полезен в любой математике расположения, которую Вы заканчиваете тем, что имели необходимость сделать для drawAtPoint.

Удачи!

2
ответ дан Joel Levin 27 November 2019 в 01:01
поделиться

[NSMutableParagraphStyle defaultParagraphStyle] работать не будет:

[NSMutableParagraphStyle new]

также кажется, что горизонтальное выравнивание работает только для drawInRect , а не drawAtPoint (спросите меня, как я знаю: -)

4
ответ дан 27 November 2019 в 01:01
поделиться

Ответ Мартинса довольно близок, но в нем есть несколько небольших ошибок. Попробуйте следующее:

NSMutableParagraphStyle* style = [[NSMutableParagraphStyle alloc] init];
[style setAlignment:NSCenterTextAlignment];
NSDictionary *attr = 
  [NSDictionary dictionaryWithObject:style 
                              forKey:NSParagraphStyleAttributeName];
[myString drawInRect:someRect withAttributes:attr];
[style release];

Вам нужно будет создать новый NSMutableParagraphStyle (вместо использования стиля абзаца по умолчанию, как предлагал Мартин), потому что [NSMutableParagraphStyle defaultParagraphStyle] возвращает NSParagraphStyle , в котором нет метода setAlignment. Кроме того, вам не нужна строка @ "NSParagraphStyleAttributeName" - просто NSParagraphStyleAttributeName .

19
ответ дан 27 November 2019 в 01:01
поделиться

Это работает для меня для горизонтального выравнивания

[textX drawInRect:theRect 
         withFont:font 
    lineBreakMode:UILineBreakModeClip 
        alignment:UITextAlignmentCenter];
27
ответ дан 27 November 2019 в 01:01
поделиться