У меня есть UILabel, который будет содержать различные длины текста. Мне нужно поместить изображение в верхнем левом углу текста и обернуть вокруг него текст. Как я могу это сделать? Все, что я мог найти, это использовать UITextView, который я не хочу использовать, поскольку это статический текст.iOS Swift Wrapping Text Around Image
ответ
Это вполне разумное использование UITextView. Ваши причины для колебаний использовать его неясно. Вы можете сделать UITextView недоступным для редактирования и неизбираемым; пользователь не будет знать, что это UITextView, а не UILabel.
Если вам не нравится это решение, то то, что я хотел бы сделать, это использовать вместо UILabel пользовательский вид, который рисует текст. Вы можете нарисовать текст с помощью текстового набора, и, таким образом, вы можете взять полную информацию о том, как рисует текст. В частности, вы можете заставить его обернуть, как вам нравится, в том числе не рисовать текст в углу (путь исключения в текстовом контейнере).
Это пример пользовательского UIView, который рисует собственный текст, создавая собственный стек Text Kit; он намного сложнее, чем вам нужно (он использует текстовые контейнеры _two_), но он показывает базовую архитектуру: https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch10p543drawingWithTextKit/ch23p815attributedStringDrawing3/StyledText.swift – matt
Да, я не думал об этом достаточно, чтобы отключить взаимодействие с пользователем. Теперь он отлично работает. Благодаря! –
Вы можете достичь этого, используя NSTextAttachment и приписываемый текст.
NSMutableAttributedString *myText = [[NSMutableAttributedString alloc] initWithString:labelStr];
NSTextAttachment *attachment = [[NSTextAttachment alloc] init]
attachment.image = yourImage;
NSAttributedString *attachmentLock = [NSAttributedString attributedStringWithAttachment:attachment];
NSMutableAttributedString *lockString = [[NSMutableAttributedString alloc] initWithAttributedString:myText];
//set your image range within the text. modify it till you get it right.
NSRange range = NSMakeRange(0,[labelStr length]);
[lockString replaceCharactersInRange:NSMakeRange(range.location, 1) withAttributedString:attachmentLock];
yourLabel.attributedText = lockString;
- 1. iOS Text Wrapping
- 2. Bootstrap 3 wrap text around image
- 3. Joomla text wrap around intro image
- 4. UILabel Text Not Wrapping
- 5. CSS text text wrapping
- 6. White Border Around Image
- 7. Text Wrapping не работает
- 8. Direct2D Border Around Text
- 9. Удалить margin around text
- 10. Facebook wrapping text
- 11. GridView item text wrapping
- 12. Cipher, text wrapping
- 13. Text Label Word Wrapping
- 14. UMLabel text wrapping issue
- 15. ПОМОЩЬ! sIFR Text Wrapping
- 16. LinearLayout not wrapping image
- 17. Crop Image swift ios
- 18. uibutton text on background image using swift
- 19. TableLayoutPanel Строки AutoHeight Around Text?
- 20. python truncate text around keyword
- 21. Sublime text 2 auto wrapping
- 22. wrapping leaf text in jstree
- 23. vaadin label text not wrapping
- 24. iOS Swift Text Fill Screen
- 25. iOS Swift: UIPickerView Text Alignment
- 26. Share image ant text WhatsApp api iOS
- 27. IOS 9 Email - Text перекрывание Image Banner
- 28. UIPickerView Wrap Around Swift 2
- 29. 9-Patch, Border around Image button
- 30. Отключить Border Around System Image Расположенного UINavigationBarItem
К сожалению, я не вижу способа получить доступ к свойству textcontainer uilable, которое, как я считаю, будет определять пути исключения. Вам просто нужно укусить пулю и использовать uitextview с отключенным пользовательским вмешательством. – user2320861
Обратите внимание на мой ответ. Мне удалось выполнить это, используя NSTextAttachment. – rcat24
Очень удачно, это можно сделать с помощью UITextView: http://stackoverflow.com/a/20033752/294884 – Fattie