Алекс Нестеров на Хабре выложил исходный код рейтинг-контрола для iPhone.

  • Может отображать текущий рейтинг, который в базе.
  • Позволяет пользователю устанавливать свой рейтинг.
  • Отслеживается с помощью делегатов.
  • Рейтинг в базе может быть float.
  • Округляется до половинки.
  • Пользовательский рейтинг может быть только int.
  • Значения, не попадающие в диапазон, режутся так, чтобы попасть в диапазон

Применение

  1. Реализовать протокол
    Rating Control for iPhone
  2. Вставить в родительский view.
    Rating control for iPhone

Скачать исходный код
Оригинал статьи

Previous ArticleNext Article
Технический директор IT-Dimension, компании-разработчика кросс-платформенного программного обеспечения

Leave a Reply

Your email address will not be published. Required fields are marked *

И.

Использование акселерометра в iPhone симуляторе

Сегодня у нас статья Хабрапользователя DimaRad об использовании акселерометра в iPhone-симуляторе.

Как разрабатывать приложения для iPhone, использующее акселерометр, мы уже знаем. Теперь осталось научиться тестировать его в симуляторе.

Такая необходимость может возникнуть по нескольким причинам: нет iPhone, либо вы еще не присоединились к iPhone Developer Program, поэтому нет возможности запустить его на реальном устройстве.
Для использования акселерометра в симуляторе нам понадобятся:

  1. Mac cо встроенным акселерометром (MacBook, MacBook Pro, MacBook Air), показания которого и будем передавать в симулятор
  2. Unimotion — программа, снимающая показания со встроенного в Mac акселерометра
  3. Accelerometer Simulator — приложения, которое посылает показания с настоящего акселерометра iPhone на Mac. (Состоит из 2х частей: приложения, устанавливающегося на iPhone; и класса, подключаемого к тестируемому приложению.)
  4. Скрипта sendaccsim.py, который конвертирует показания от Unimotion для использования в Accelerometer Simulator:
import sys, socket, time, traceback

kCFAbsoluteTimeIntervalSince1970 = 978307200.0 #from CFDate.c

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('',0))
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

while 1:
 try:
  line = sys.stdin.readline()[:-1] # read line and strip EOL
  fields = line.split() # split around space character
  floatfields = map(float, fields) # convert to floats
  # transform coordinate system, from Sudden Motion Sensor to UIAcceleration format
  x, y, z = map(lambda x: -1 * x, floatfields)

  # change epoch to be compatible with CFAbsoluteTimeGetCurrent()
  currentTime = time.time() - kCFAbsoluteTimeIntervalSince1970

  accdata = ','.join(map(str,('ACC: 0',currentTime,x,y,z)))

  sock.sendto(accdata, ('<broadcast>', 10552))

 except (ValueError, KeyboardInterrupt):
  sock.close()
  sys.exit(-1)
 except:
  traceback.print_exc()

Для начала, необходимо собрать Unimotion. C sourceforge.net скачиваем и распаковываем архив с программой. Переходим в распакованую папку и выполняем make, после чего у нас появляется папка bin, содержащая motion и libUniMotion.dylib. Туда же копируем sendaccsim.py и запустим его:

$ ./motion -f 17 | python sendaccsim.py

Из Accelerometer Simulator берем AccelerometerSimulation.h и AccelerometerSimulation.m и подключем к нашему проекту в AppDelegate.h:

#import "AccelerometerSimulation.h"

Запускаем приложение в симуляторе, и эмулируем акселеромер iPhone, наклоняя Mac влево-вправо :).


Вольный перевод Use the Mac’s accelerometer in the iPhone Simulator.

Оригинал статьи на Хабре