【问题标题】:Counting whitespace and blanks in UILabel text计算 UILabel 文本中的空格和空格
【发布时间】:2012-12-23 03:03:03
【问题描述】:

我的单元格标签中有一个删除子视图,其宽度根据行中的文本进行设置。单元格标签中的行数设置为 2,当有两行时,我在标签上设置了两个删除线。

这就是我为只有一行文本的标签所做的:

 UIView *crossout = [[UIView alloc] init];
 crossout.frame = CGRectMake(x, y, w + 5, 2);
 crossout.backgroundColor = [UIColor colorWithRed: 0.0 / 255 green:175.0 / 255 blue: 30.0 / 255 alpha:1.0];
 crossout.tag = 1;
 [self.contentView addSubview:crossout];

我通过以下方式获取宽度 (w):

 CGFloat w = [self.label.text sizeWithFont:[UIFont systemFontOfSize:15.0f]].width;

当我有第二次删除时,我只需从标签的长度中减去 w 即可得到第二次删除的宽度。

但问题是 w 不考虑标签文本中的空格或空白,因此它在换行符处看起来并不总是一致的。

如何计算 w 以使其包含空格和空格?

【问题讨论】:

    标签: iphone ios uitableview uilabel


    【解决方案1】:

    据我所知,您可以将其用于UITextField,但您可以试一试..

    NSString *resultingString = self.label.text;
    
    NSCharacterSet *whitespaceSet = [NSCharacterSet whitespaceCharacterSet];
    
    if  ([resultingString rangeOfCharacterFromSet:whitespaceSet].location == NSNotFound)         {
    //here you can put your code
    
    }
    

    【讨论】:

    • 我想要做的是弄清楚如何在我为标签计算的宽度大小中包含空格计数(现在它只计算文本而不是任何空格) - 关于我如何做到这一点的任何想法?
    【解决方案2】:

    要获取字符串中内联空格的数量,您可以尝试以下代码:

    NSCharacterSet* whitespaceSet = [NSCharacterSet whitespaceCharacterSet];
    NSArray* substringsArray = [yourStringToCheck componentsSeparatedByCharactersInSet: whitespaceSet]
    NSLog(@"Number of whitespaces : %d", [substringsArray count]);
    

    或者,也许更好(尽管这可能不考虑标签等):

    NSLog(@"Number of whitespaces : %d", [[yourStringToCheck componentsSeparatedByString:@" "] count]);
    

    另一个选项(NSMutableString):

    NSUInteger replacementCount = [yourStringToCheck replaceOccurrencesOfString:@" " withString:@" " options:NSLiteralSearch range:NSMakeRange(0, [receiver yourStringToCheck])];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      相关资源
      最近更新 更多