суббота, 16 марта 2013 г.

Stretch AVPlayer

В стандартном плеере iOS есть кнопка для растягивания содержимого - подгонки границ для границ в зависимости от режима. Говоря простым языком, контент будет отображаться либо полностью, либо на весь экран.
Для того, чтобы воссоздать данный эффект в кастомном плеере, нам понадобится лишь изменить свойство videoGravity  объекта AVPlayerLayer: self.player.playerLayer .videoGravity используя код:
-(void)minimizeAction:(id)sender
{
    AVPlayerLayer* layer = self.player.playerLayer;
    if([layer.videoGravity isEqualToString:AVLayerVideoGravityResizeAspect])
        layer.videoGravity = AVLayerVideoGravityResizeAspectFill;
    else
        layer.videoGravity = AVLayerVideoGravityResizeAspect;
    [layer setNeedsLayout];
}

четверг, 21 февраля 2013 г.

UISearchBar вызывает resignFirstResponder при повороте

При повороте устройства UISearchBar с установленным свойством delegate, вызывает метод протокола -(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar, что непосредственно связано с resign'ом клавиатуры. Тогда все что надо сделать в данном случае, это имплементировать метод:
-(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar. 

Например объявить переменную isRotating и в методах UIViewController соответственно устанавливать ее:

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    isRotating = YES;
}

-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    isRotating = NO;
}

-(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar
{
    return !isRotating;
}





среда, 13 февраля 2013 г.

Прозрачный градиент как фон UIView

Создаст градиент слева направо

UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
view.backgroundColor = [UIColor whiteColor];
 
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = view.bounds;
 
gradientLayer.colors = [NSArray arrayWithObjects:
                            (id)[UIColor clearColor].CGColor,
                            (id)[UIColor whiteColor].CGColor, nil];
 
[gradientLayer setStartPoint:CGPointMake(0.0, 1.0)];
[gradientLayer setEndPoint:CGPointMake(1.0, 1.0)];
 
view.layer.mask= gradientLayer;

четверг, 15 ноября 2012 г.

Could not insert new outlet connection

"Could not insert new outlet connection: Could not find any information for the class named..." 

Вот такое чудо выдал мне XCode 4.5 при попытке присоединить вьюху из .xib в класс. Вот что мне  НЕ помогло:
1) Перезапустить XCode;
2) Сделать Clean Up;

Решение:
 Удалить файлы класса(.h и .m), относящиеся к .xib, (Remove reference) и добавить их обратно.

вторник, 13 ноября 2012 г.

Build succeeded


Буду постить сюда решения того, что делаю.
В основном разработка под iOS, но бывает и Marmalade SDK.