Автоопределение ссылок в табличном виде UILabel - PullRequest
0 голосов
/ 07 апреля 2011

Я нашел кое-что по этой теме. Я просто хочу, чтобы ссылки, которые появляются в моем ярлыке, автоматически распознавались как ссылки и гиперссылки. Я посмотрел на проект2020 TTtwitter, но он выглядит действительно сложным, и я не знаю, с чего начать.

Кто-нибудь знает, может ли это быть сделано простым способом, или кто-то может попытаться объяснить мне?

Спасибо заранее!

Ответы [ 2 ]

0 голосов
/ 14 апреля 2011

Нельзя подчеркнуть текст в UILabels или UIButtons.Вот что я сделал с похожей ситуацией.

Я хотел подчеркнуть текст в представлении, которое выглядело как ссылка, но я не хотел функциональности UIWebView, и мне нужна была стандартная функциональность UIControl target / action.То, что я сделал, работает, только если у вас есть единственная строка текста, которую вы хотите отобразить, и она выглядит как ссылка.Используйте это как стандартную кнопку UIB.Вы должны создать с помощью type = UIButtonTypeCustom.

Я создал подкласс UIButton, который поддерживает подчеркивание для одной строки текста путем переопределения drawRect.Я добавил BOOL _titleLabelUnderlined iVar в подкласс.

XButton.m

- (void)drawRect:(CGRect)rect
{
   // just in case...
   [super drawRect];

   if (_titleLabelUnderlined) {
        CGContextRef context = UIGraphicsGetCurrentContext();

        // determine the size of the titleLabel text based on the font
        CGSize textSize =[self.titleLabel.text sizeWithFont:self.titleLabel.font 
                                                   forWidth:self.bounds.size.width
                                              lineBreakMode:UILineBreakModeTailTruncation];

        // set the underline color
        CGContextSetStrokeColorWithColor(context, self.currentTitleColor.CGColor);

        // line width
        CGContextSetLineWidth(context, 1.0f);

        // calc the start and end points for the line
        CGFloat minX = self.titleLabel.center.x - textSize.width/2.0f;
        CGFloat maxX = self.titleLabel.center.x + textSize.width/2.0f;

        // start the line
        CGContextMoveToPoint(context, minX, CGRectGetMinY(self.titleLabel.frame) + CGRectGetHeight(self.titleLabel.frame) + 1.0f);

        // draw the line to the end point
        CGContextAddLineToPoint(context, maxX, CGRectGetMinY(self.titleLabel.frame) + CGRectGetHeight(self.titleLabel.frame) + 1.0f);

        // commit the drawing
        CGContextStrokePath(context);
    }
}
0 голосов
/ 07 апреля 2011

предложит вам пойти с UIWebView

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

@property(nonatomic) UIDataDetectorTypes dataDetectorTypes
...