Files
divkit/client/ios/Core/BaseUI/AttributedStringLayout.swift
T
morevsavva c9cbe13bc0 Fix selecting text in multiline string
Многоточие, которое мы прилепляли к обрезанным строкам считается не продолжением строки (с сохранением порядка пропертей CTLine), а как будто "новой" строкой, дописанной снизу. Поэтому добавил отдельную обработку для обрезанной строки 
Чтобы было понятнее
Если была какая-то 2 строчная строка, то range у нее внутри attrstring будут как (x, y (y - кол-во символов в конкретной строке)), (x + y + 1, z) соответственно, а у обрезанной (x, y), (0, 2) потому что это уже несвязанные строки.
2022-08-26 15:04:58 +03:00

25 lines
583 B
Swift

// Copyright 2021 Yandex LLC. All rights reserved.
import CoreGraphics
import CoreText
import Foundation
public struct AttributedStringLayout<Action> {
public struct Run {
public let rect: CGRect
public let action: Action
}
public let firstLineOriginX: CGFloat?
public let runsWithAction: [Run]
public let lines: [AttributedStringLineLayout]
}
public struct AttributedStringLineLayout: Equatable {
public let line: CTLine
public let verticalOffset: CGFloat
public let horizontalOffset: CGFloat
public let range: NSRange
public let isTruncated: Bool
}