相关疑难解决方法(0)

iOS 11中UILabel错误的自动换行

我有使用XIB而没有自动布局的应用程序的问题.我不知道这是否是重要信息.

我有UILabel有两行使用自动换行.在iOS 10中,自动换行正常工作,第一行包含一个单词+特殊字符,例如&符号.例:

UiLabel on ios 10

然后在iOS 11上,自动换行错误并将放大器放到第二行:

UiLabel on ios 11

这是有问题的,因为通常在第二行上安装的较长的单词现在未正确显示.知道改变了什么吗?我知道safeArea但它看起来不像是理由.任何想法如何将该&符号移到顶部哪里有足够的空间?

其余设置: 尺寸检查员

iphone uilabel ios ios11

40
推荐指数
4
解决办法
6313
查看次数

UITextView获取当前行

有没有办法(疯狂的黑客欢迎)将当前行作为UITextView的字符串?这将包括自动换行等.例如,在这种情况下:

在此输入图像描述

该方法将返回"堆栈溢出.是不是很好?我",因为这是基于游标的当前行.

它也可以根据光标的位置返回"这是我为之做的测试"或"这么做".我尝试过使用UITextView方法和UITextInput协议.

编辑:

这是我试图使用的代码.我需要找到字符串的原因是为了得到它的长度,所以这就是为什么你会看到基于UI的代码.

NSRange location = self.textView.selectedRange;
NSString *searchString = [self.textView.text substringWithRange:NSMakeRange(0, location)];
CGSize currentStringDimensions = [searchString sizeWithFont:self.textView.font constrainedToSize:CGSizeMake(self.textView.frame.size.width, self.textView.frame.size.height) lineBreakMode:NSLineBreakByWordWrapping];    
float numberOfRows = (currentStringDimensions.width/(self.textView.frame.size.width));
float left = (float)(numberOfRows - (int)numberOfRows) * (self.textView.frame.size.width);
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.我认为它可能与包装的单词或不同大小的字符有关,但左边的值不一致或在第一行后关闭.

uitextfield uitextview uikit ios uitextinput

6
推荐指数
1
解决办法
1910
查看次数

text-align-last css属性Swift等效

什么是'text-align-last'css属性的swift等价物?我更喜欢无代码解决方案.

这是我所做的和我得到的:

在此输入图像描述

最后一行(有时是唯一的一行)与左边对齐,这是不方便的.

right-to-left swift

5
推荐指数
1
解决办法
315
查看次数

获取 UILabel 中的每一行文本

我正在尝试将 aUILabel中的每一行添加到数组中,但我使用的代码似乎并不十分准确。

func getLinesArrayOfStringInLabel(label:UILabel) -> [String] {

    guard let text: NSString = label.text as? NSString else { return [] }
    let font:UIFont = label.font
    let rect:CGRect = label.frame

    let myFont: CTFont = CTFontCreateWithName(font.fontName as CFString, font.pointSize, nil)

    let attStr:NSMutableAttributedString = NSMutableAttributedString(string: text as String)
    attStr.addAttribute(NSAttributedStringKey.font, value:myFont, range: NSMakeRange(0, attStr.length))

    let frameSetter:CTFramesetter = CTFramesetterCreateWithAttributedString(attStr as CFAttributedString)

    let path: CGMutablePath = CGMutablePath()
    path.addRect(CGRect(x: 0, y: 0, width: rect.size.width, height: 100000))

    let frame:CTFrame = CTFramesetterCreateFrame(frameSetter, CFRangeMake(0, 0), path, nil)
    let lines …
Run Code Online (Sandbox Code Playgroud)

core-text ios swift

5
推荐指数
1
解决办法
2491
查看次数