如何设置UILabel的最大长度?

时间:2013-05-09 09:23:19

标签: ios objective-c xcode uilabel

我的标签显示了一个Web服务字段。我想显示我的标签的10个字符。我的代码无效。

在didEndElement代码中:

  if ([elementName isEqualToString:@"StationName"] ) {
      StationName.text = retornoSOAP;
      returnSOAP = nil;
      tReturn = NO;    
  }

此代码正常工作。它将StationName字段显示为StationName标签

我的错误在哪里?

  - (void)viewDidUnload {
         *NSString *temp =@"                                  ";

            if ([temp length] > 10) {
              NSRange range = [temp rangeOfComposedCharacterSequencesForRange:(NSRange){0, 10}];
              temp = [temp substringWithRange:range];
            }

             StationName.text= temp;
    }

3 个答案:

答案 0 :(得分:1)

你的代码不起作用的最可能原因是你在错误的地方调用它:viewDidUnload是一个不太可能成为正确位置的候选者,因为它通常被称为太晚不能影响任何可见的在屏幕上。另外,你用一长串空格开始你的temp,所以最后你会在标签中得到十个空格。

缩短设置它的代码中的标签应该更好:

if ([elementName isEqualToString:@"StationName"] ) {
    *NSString *temp = retornoSOAP;
    if ([temp length] > 10) {
        NSRange range = [temp rangeOfComposedCharacterSequencesForRange:(NSRange){0, 10}];
        temp = [temp substringWithRange:range];
    }
    StationName.text= temp;
    returnSOAP = nil;
    tReturn = NO;    
}

答案 1 :(得分:0)

尝试这样就不需要取范围所有这些东西只需使用这个substringToIndex方法。

- (void)viewDidLoad { // not in viewDidUnload
    StationName.text=temp;
    if([StationName.text length]>10){
            StationName.text=[StationName.text substringToIndex:10];
        }

}

答案 2 :(得分:0)

你做错了。因为您想在viewDidLoad中编写代码,但现在已经用viewDidUnload编写了代码。你可以得到10个字符的字符串:

  - (void)viewDidLoad 
{
    if ([temp length] >10) 
    {
          temp = [temp substringToIndex:10];
    }

    StationName.text= temp;
}