вторник, 5 февраля 2013 г.

Выравниваем кнопку в Toolbar по правому краю

Возникла тут на днях необходимость создать программно такой вот поповер:


Все выглядит просто: обычный UINavigationController с UITableViewController в роли рутового вйу контроллера. Title и две кнопки по бокам делаются элементарно. Но вот возник у меня вопрос как сделать кнопку Done.

Ответ нашел в блоге чувака Ari Braginsky. Делается это так:

UIBarButtonItem *flexibleSpaceLeft = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

[yourToolbar setItems:[NSArray arrayWithObjects:flexibleSpaceLeft, yourUIBarButtonItem, nil]];

[flexibleSpaceLeft release];

Очень мне помогло это решение. Спасибо Ari за подсказку

пятница, 21 октября 2011 г.

Опять привет

Привет! Скоро исполнится год, как я пошнл работать в крупную кампанию. Именно с высокой нагрузкой связано мое достаточно длительное отсутсвие. Но я постараюсь исправится и продолжить вести блог. Но в силу того, что в данный момент я пишу софт под Mac OS - я буду писать сюда примеры именно из этой области. Как быть с названием блога я даже не знаю, пока останется таким как есть.

четверг, 2 декабря 2010 г.

Вращение, перемещение и изменение размера спрайта

Продолжаю предыдущий пост.

Мне нужно было реализовать манипулирование загруженной фотографией так как это сделано в галерее фотографий. То есть, нам нужно изменять размер спрайта, поворот и передвижение.

Выбор фотографии из галереи на iPad

Мда, как-то глупо выглядит мой предидущий пост Возвращение джедая, написан еще 14 сентября. Почти 2 месяца я возвращался. Но я постараюсь все таки заставить себя писать.

Возможно меня будет сложно читать, кому-то мои посты покажутся не связанными, так оно и будет. Но я буду описывать проблемы которые возникают у меня во время разработки приложений и их решения.

Еще меня обвинили в обмане. Мол я попиздеть пришел, а ничего конкретного не говорю. Согласен, отныне буду писать код и меньше текста.

вторник, 14 сентября 2010 г.

Возвращение джедая

Больше двух месяцев я не писал ничего в блог. Если честно, то я думал никому он кроме меня не нужен. И я приятно удивлен, когда ко мне обращаются люди за советом, читавшие этот блог. Ну раз кто-то читает, я буду писать :)

В жизни моей случились некоторые перемены: сдал первый проект на заказ, я женился, съездил на море отдохнуть, переехал в съемную квартиру с женой и взял еще один проект на заказ.

О последнем подробнее...

воскресенье, 4 июля 2010 г.

Первый блин комом

Программы, как и люди, имеют свой жизненный цикл. Они "рождаются" из первых прототипов, концептов. Потом ростут в нечто большее, обростая функционалом и графическими интерфейсами. Уходят в продакшн, словно выросшие дети уходят из дому во взрослую жизнь. И наконец, о программах забывают, что равносильно смерти.

Кажеться, только вчера я начал изучать Objective-C и переписывать первые примеры Хелоу Ворлды. Как буд-то вчера, я написал первый скелет своей первой программы. Это был прототип iDharmaClock. А сегодня уже приложение подошло к своему финальному этапу жизни.

За две недели продаж, iDharmaClock заработала чуть больше $50. Это считается провалом. Как говорится - первый блин комом. Но для меня этот ком - ценнейший опыт. Я очень многому научился, делая, казалось бы, элементарные часы/будильник.

Что было сделано неправильно:

во-первых, достаточно нестандартный подход к будильнику. Так как у меня в будильнике звук включается за минуту до настроенного времени, а не по наступлению этого времени, у большого количества людей возникли с этим проблемы. Почти все, кто пробовал программу, настраивали будильник ровно на одну минуту и следовательно звук будильника не успевал включаться. Некоторые люди, отнеслись к этой фишке как к фиче, но большинство - как к багу.

во-вторых, я мало внимания уделил рекламе своего приложения. Хоть я и постарался выложить информацию о программе во все публичные места - этого было недостаточно. Хорошо было-бы пропиарится на сайтах фанатов сериала ЛОСТ, но я побоялся правообладателей сериала и торговых марок.

на Хабре, пост про iDharmaClock раскритиковали в большей части из-за платности приложения. Нужно было сделать как @zyafa: в первые сутки поставить цену - бесплатно, а потом уже повысить цену.  Но это все я уже постараюсь учесть при выпуске следующего приложения :)

пятница, 11 июня 2010 г.

Пишем себе часики для iPhone Часть 1. Основа всех часов

Основой всех часов является повторение определенного действия через заданное время. Итак, какой главный принцип работы наших часов? Правильно, это метод NSTimer который запускает таймер.


NSTimer *myTicker = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(showActivity) userInfo:nil repeats:YES];

Функция showActivity запускает проверку времени. У меня в часах есть возможность отображать секунды (по умолчании этот режим выключен). При каждом вызове функции showActivity мы обновляем переменную секунд, добавляя к ней 1. Далее проверяем секунды и если секунды равны 60 то обнуляем переменную и запускаем функцию смены минут.

Обратите внимание на параметр repeats:YES который указывает, что функцию showActivity нужно запускать повторно.

Параметр scheduledTimerWithTimeInterval:1.0 задает время через которое фунцкия будет запускаться заново.

Если вы захотите остановиь наш таймер, то нужно вызвать метод [myTicker invalidate]