2012-01-13 3 views
1

У меня есть UIButton, текст которого исходит от сервера. Ширина кнопки фиксирована. Я хочу, если текст кнопки превышает ширину кнопки, текст должен быть выделен в пределах кнопки. Если текст соответствует ширине кнопки, эффект выделения не должен быть.Отметить текст UIButton

Я следил за некоторыми ссылками (one, two), но я все еще болтаю по этому вопросу. Я попытался реализовать первую ссылку, но без успеха. Текст не перемещается.

Это потому, что мне нужно нажать кнопку внутри UIView или перемещение текста может произойти внутри кнопки?

+0

Можете ли вы показать нам или объяснить больше, что вы пробовали для первой ссылки? Код выглядит так, как будто это сработает. – sosborn

ответ

0

Вы можете использовать webview для этой работы, загрузить html, как указано ниже, u можете использовать условие для проверки текста более или менее, используйте href для гиперссылки текста. Этот текст гиперссылки при щелчке делегата webview распознает его.

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request 
       navigationType:(UIWebViewNavigationType)navigationType; 

    <html> 
     <body bgcolor=\"#0066CC\"> 
     <marquee>some test to marquee </marquee> 
     </body> 
    </html> 
+0

Я думаю, что загрузка UIWebview ТОЛЬКО для шатра немного тяжело. Это, вероятно, будет работать (не пробовал), но это похоже на неправильное использование ресурсов. – sosborn

+0

это будет легко и не нужно поддерживать данные в отдельном массиве, поскольку мы получили данные, генерируем html и загружаем его. И делегат дает затронутый элемент с href url ... – vishy

+0

easy! = Хорошо, особенно учитывая использование ресурсов на мобильной платформе. Да, это, вероятно, сработает, но это не значит, что это лучший способ сделать это. – sosborn

0

У меня такая же проблема, я проверяю вашу 2-ую ссылку и вторую работу в моем случае. Я отправляю свой код для вас.

messageView = [[UIView alloc] initWithFrame:CGRectMake(20, 680, 635, 19)]; 
[messageView setClipsToBounds:YES]; 
[backgroundImageView addSubview:messageView]; 
lblTime = [[UILabel alloc] initWithFrame:CGRectMake(900, 680, 635, 19)];// your starting animation point 
[lblTime setBackgroundColor:[UIColor clearColor]]; 
lblTime.textColor=[UIColor whiteColor]; 
[lblTime setFont:[UIFont boldSystemFontOfSize:15]]; 
[backgroundImageView addSubview:lblTime]; 
[self sendNotification:@"your message"]; // call the method 


- (void)sendNotification:(NSString*)txt{ 
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:8.5]; 
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:messageView cache:YES]; 
[lblTime setText:txt]; 
[lblTime setTextAlignment:UITextAlignmentLeft]; 
lblTime.frame = CGRectMake(20, 680, 650, 19); // end point of animation 
[UIView commitAnimations]; 
} 
Смежные вопросы