UI библиотека сообщений для iOS

https://github.com/zhuozhuo/ZHChat

ZHChat — open source UI компоненты для чата, поддерживающие отправку голосовых сообщений, изображений, текста, смайликов, данных о местоположении, видеосообщений. ZHChat может помочь разработчикам быстро интегрировать IM сервис, простой чат, предоставляет полностью бесплатное/свободное лицензионное соглашение, поддерживает «вторичную» разработку. Welcome to

DropDownMenuKit

https://github.com/qmathe/DropDownMenuKit

DropDownMenuKit — это настраиваемый UIKit контрол для отображения меню, прикрепленного к navigation bar или toolbar. Меню появляется с анимацией sliding и отлично настраивается. Например, иконки, встроенные контролы или галочки, указывающие на выбранную строку.

Контрол состоит из 3 частей:

  • DropDownMenu

LoopedContentsView

https://github.com/naru-jpn/LoopedContentsView

LoopedContentsView — для отображения и управления циклическим контентом. Может выдержать очень быстрый скроллинг!

Использование

Delegate / DataSource

Использует delegate и datasource наподобие UITableView/UICollectionView.

Delegate

Required

func loopedContentsView(loopedContentsView: LoopedContentsView, lengthOfContentAtIndex index: Int) -> CGFloat

Optional

func loopedContentsView(loopedContentsView: LoopedContentsView, willSelectContentAtIndex index: 

BCMagicTransition

https://github.com/boycechang/BCMagicTransition.git


Требования: ARC, iOS 7.
Способы внедрения:
1)исходниками — скопировать файлы из папки BCMagicTransition
2)через Cocoa pods:

pod 'BCMagicTransition'

Пример использования:

#import "UIViewController+BCMagicTransition.h"

@interface MyViewController : <BCMagicTransitionProtocol>


- (void)push
{
    ... ...

    [self pushViewController:secondVC fromViews:fromViews toViews:toViews duration:0.3];
}

Лицензия: MIT.…

Дочерний UIView блокирует срабатывание события TouchesBegan для родительского UIView

Суть проблемы — событие TouchesBegan срабатывает непосредственно на view, которого касается пользователь. У superview по умолчанию событие не срабатывает.
Ссылка на решение проблемы:
http://stackoverflow.com/questions/12811848/subview-blocking-parent-view-touchesbegan

Решение — в дочернем UIView нужно прописать следующий код:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
   [super touchesBegan:touches 

iOS. Когда объекты UIViewController требуются в разных ориентациях в одном приложении

Например, если все приложение в ориентации portrait, а при клике на графике «разворачивается» на весь экран в landscape.

Источник решения:
http://stackoverflow.com/questions/24970286/differnet-orientations-for-various-view-controllers/24970381#24970381

Возможно единственное универсальное решение — использовать афинные преобразования:

-(void)setRotationInLandscapeMode:(BOOL)status
{
if(status)
{
self.navigationController.navigationBar.frame = CGRectOffset(self.navigationController.navigationBar.frame, 0.0, -20.0);
self.view.transform = 

iOS. Переход с UIViewController с top bar к другому UIViewController без нее

Внутри второго UIViewController вставить следующий код:

— (void)viewDidAppear:(BOOL)animated
{
[superviewDidAppear:animated];
self.navigationController.navigationBarHidden = YES;
}

— (void)viewDidDisappear:(BOOL)animated
{
[superviewDidDisappear:animated];
self.navigationController.navigationBarHidden = NO;
}

Возможно, еще придется спрятать backBarButton.…