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

OSCHINA-MIRROR/mengqingling-mqlmessageui

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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

В проекте используется 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 )

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

Введение

Использование Masonry в сочетании с UITableView-FDTemplateLayoutCell позволяет реализовать демонстрацию текстовых сообщений в чате исключительно с помощью кода. Для контроля над положением метки сообщения и фонового пузыря сообщения используется свойство Content Hugging метки. При использовании автоматической компоновки полезно применять свойс... Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
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