1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mengqingling-mqlmessageui

Клонировать/Скачать
README.md 3.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 04:30 3b7b2ce

Проект представляет собой реализацию интерфейса чата с использованием кода.

В проекте используется Masonry в сочетании с UITableView-FDTemplateLayoutCell.

Для контроля над положением метки сообщения и фонового пузыря сообщений применяется свойство Content Hugging у label.

При использовании автоматической компоновки полезно применять intrinsicContentSize для связанных элементов управления.

Hugging priority определяет, насколько сильно представление препятствует своему увеличению.

Compression Resistance priority определяет, насколько сильно представление препятствует уменьшению своего размера.

Чтобы понять это, можно закомментировать следующие две строки кода:

  • после комментирования, если длина сообщения не заполняет строку целиком (это важно), метка сообщения будет увеличиваться в размере, чтобы соответствовать фоновому изображению;
  • при отмене комментирования и установке большего значения для HuggingPriority у метки по сравнению с фоновым представлением, способность метки препятствовать своему увеличению становится больше, чем у фонового представления, и тогда фоновое представление будет уменьшаться в размерах, чтобы соответствовать метке.

Необходимо установить наивысший приоритет для HuggingPriority детализированной метки (detailLabel), иначе могут возникнуть проблемы при повторном использовании ячейки.

[_detailLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
[_bubbleView setContentHuggingPriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal];

Синхронизация

//MARK: ===== Использование асинхронных параллельных потоков может привести к тому, что несколько потоков будут одновременно обращаться к объекту dataArray. Для обеспечения безопасности потоков используется @synchronized.

Каждый объект, вызывающий synchronized, получает рекурсивный мьютекс от Objective-C runtime и сохраняется в хэш-таблице.

@synchronized (self) { [self.dataArray addObject:model]; NSLog(@"%@", @"==========="); }

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mengqingling-mqlmessageui.git
git@api.gitlife.ru:oschina-mirror/mengqingling-mqlmessageui.git
oschina-mirror
mengqingling-mqlmessageui
mengqingling-mqlmessageui
master