【问题标题】:Center UILabel text on specific position在特定位置居中 UILabel 文本
【发布时间】:2014-06-28 23:51:14
【问题描述】:

我有一个带有长文本的 UILabel,但不知不觉中它无法完整显示。

所以我想知道是否有一种方法可以使显示的文本以自定义偏移居中。

例如,如果我的文字是

Lorem ipsum dolor sit amet、consectetur adipisici elit、sed eiusmod tempor incidunt ut labore et dolore magna aliqua。

现在我得到了类似的东西

Lorem ipsum dolor sit amet...

但我想要

...eiusmod tempor incidunt ut...

我希望我已经足够清楚了。

【问题讨论】:

    标签: ios objective-c uilabel


    【解决方案1】:

    使用 NSMakeRange 将字符串从某个位置修剪到该位置。如果您想将字符限制为某个长度,则以下方法将字符串从字符串的正中间修剪长度。

    - (NSString*)trimString:(NSString*)myLongString{
    NSUInteger trimLength = 20;
    NSUInteger stringLength = [string length];
    if(stringLength < trimLength) return myLongString;
    NSUInteger trimStartPosition = stringLength / 2 - trimLength / 2;
    NSString *trimmedString = [myLongString substringWithRange:NSMakeRange(trimStartPosition, trimLength) ];
    
    return [NSString stringWithFormat: @"...%@...", trimmedString];
    
    }
    

    【讨论】:

      【解决方案2】:

      根据 Insane-36 的回答,我已经这样做了。

      - (NSString *)trimString:(NSString *)string aroundWord:(NSString *)word withRadius:(NSUInteger)radius {
      
          NSString *prev = @"...", *next = @"...";
          NSUInteger centerStr = [string rangeOfString:word].location + word.length/2;
          NSUInteger start = centerStr - radius;
      
          NSRange range = NSMakeRange(start, radius * 2);
      
          if (range.location + range.length > string.length) {
      
              range = NSMakeRange(string.length - range.length, range.length);
              next = @"";
      
          }
      
          if ((int)(range.location - range.length / 2) < 0) {
      
              range = NSMakeRange(0, range.length);
              prev = @"";
          }
      
          NSString *stringaRestituita = [string substringWithRange:range];
      
          return [NSString stringWithFormat: @"%@%@%@", prev, stringaRestituita, next];
      
      }
      

      它非常适合我。

      【讨论】:

      • 您可以考虑使用省略号字符……而不是三个句点。
      猜你喜欢
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      相关资源
      最近更新 更多