2017-12-22 28 views
0

텍스트보기에 이미지와 함께 속성이 지정된 문자열이 있는데 속성 이미지가 정상적으로 표시됩니다. 문제는 이미지를 추가 할 때마다 텍스트 뷰 내부의 텍스트를 대체한다는 것입니다. 나는 속성이있는 이미지를 추가하고 커서를 이미지의 끝 부분에 놓으므로 이미지 아래에 텍스트를 추가 할 수 있습니다. 이것은 내가 지금까지 시도한 것입니다, 미리 감사드립니다.UItextview의 텍스트를 대체하는 속성 문자열 이미지

let attachment = NSTextAttachment() 
    attachment.image = selectedImage 
    let newImageWidth = (textView.bounds.size.width - 10) 
    let scale = newImageWidth/(selectedImage.size.width) 
    let newImageHeight = selectedImage.size.height * scale 
    attachment.bounds = CGRect(x: 0, y: 0, width: newImageWidth, height: newImageHeight) 
    let myAttributedString = NSAttributedString(attachment: attachment) 
    textView.textStorage.insert(myAttributedString, at: textView.selectedRange.location) 

답변

0

내 문제를 해결하기 위해 NSMutableAttributedString()을 만들고 이미지의 맨 아래에 커서를 놓는 새로운 선 속성을 추가했습니다. 희망이 도움이 누군가.

var mutableAttrString = NSMutableAttributedString() 

    let attachment = NSTextAttachment() 
    attachment.image = selectedImage 
    let newImageWidth = (textView.bounds.size.width - 10) 
    let scale = newImageWidth/(selectedImage.size.width) 
    let newImageHeight = selectedImage.size.height * scale 
    attachment.bounds = CGRect(x: 0, y: 0, width: newImageWidth, height: newImageHeight) 
    let myAttributedString = NSAttributedString(attachment: attachment) 
    let text:[String:Any] = [NSFontAttributeName:UIFont.boldSystemFont(ofSize: 20)] 

    // Fixed my problem of having image replacing text, instead I place the text at the bottom of the image 
    let textAttr = NSMutableAttributedString(string: "bottom of image \n", attributes: text) 

    mutableAttrString.append(myAttributedString) 
    mutableAttrString.append(textAttr) 

    textView.attributedText = mutableAttrString