Ответы пользователя по тегу iOS
  • Можно ли заниматься дизайном и разработкой мобильных приложений под IOS на компьютере с Windows?

    Flanker_4
    @Flanker_4
    Вы однозначно можете заниматься дизайном. Тут нужен всего лишь "фотошоп" и понимание специфики интерфейсов для iOS. Ни то, ни другое не привязано к маку. А вот разрабатывать нативные приложения без мака не получится. Альтернатива - хакинтош, но это уже совсем другая история
    Ответ написан
    3 комментария
  • Как передать NSMutableArray с объектами одного класса в метод?

    Flanker_4
    @Flanker_4
    В идеале отказаться от оперирования NSMutableView, а класс, который его содержит - сделать контейнером, добавив методы
    -addObject
    -removeObject
    -(NSArray*) objects
    И либо на этапе добавления контроллировать уникальность, либо на этапе извлечения (-objects). Через ту же Фильтрацию массивов. Ну либо перед передачей массива параметром провести ту же фильтрацию. К сожалению, а может и к счастью - массивы в foundation могут содержать любые обьекты

    Кстати, то что Вы хотите сделать - отлично делается на swift . Код objective c и swift миксуется без проблем. Да и вообще, с c# на свифт проще будет переехать
    Ответ написан
    1 комментарий
  • Как в iOS разместить на одной странице прокручивающуюсю форму и список?

    Flanker_4
    @Flanker_4
    Ну смотрите, все зависит от того, как вы хотите что бы оно работало. Если интересует банальный скрол - то у tableView есть свойство tableViewHeader. Пихаете в него View с формой, и получаете простой скрол. Но это решение будет немного корявым для пользователя - он сможет проскролить так, что будет видно пол формы, ну а дальше список будет идти на экране.
    Если же нужно сделать именно страничное переключение, т.е. либо форма, либо список, то тогда делаете
    UIScrollView:[UIView,UITableView]
    где UIView - ваша форма, размером на весь экран девайса, а UITableView - список, такого же размера.
    Размещены они вертикально, друг на дружкой. в uiscrollView включаете pagingEnabled и выставляете корректный contentSize
    Ответ написан
  • Как организовать Core data без tableview?

    Flanker_4
    @Flanker_4
    Понимаете в чем дело, CoreData Framework предназначен для хранения и управления графом объектов. Именно по этому везде используют UITableView. Он без заморочек позволяет отобразить иерархическую структуру, был бы стандартный контролл для рисования графов, юзали бы его. Ну так вот, Core Data не предназначен для хранения переменных - это как на самолете по сельской дороге кататься. Настоятельно рекомендую почитать хотя бы первые две главы https://developer.apple.com/library/mac/documentat... Для сохранения каких-то переменных лучше всего использовать NSUserDefault или же NSKeyedArchiver

    На всякий случай, если Вы все же захотите что-то записать в CoreData , то смотрите на главы Creating and Deleting Managed Objects и Fetching Managed Objects. Ну и перед тем как писать "переменную", ее нужно будет представить в виде объекта...
    Ответ написан
    Комментировать
  • Как организовать модульную структуру ios приложения?

    Flanker_4
    @Flanker_4
    Ну смотрите, мне видится вот какие варианты:
    1) Framework, kit. Делается по аналогии с UIKit , который Вы постоянно используете в своих проектах под iOS. Если Вы делаете проект под iOS 8, то тут все чертовски просто и делается прям из коробки (см. создание таргета Framework). Если речь о поддержке старых версий - тот тут все посложней, так как Вам нужно будет создать статическую библиотеку. Ах да, framework'и будут статические, если речь идет о iOS. Из плюсов данного подхода - это единообразность и органичность с той экосистемой, которую толкает apple
    2) Сocoa pod's. к сожалению я не знаю, позволяют ли поды делать это приватно, не шаря код для других (наверное нет...), но с подами все действительно просто - Вам нужно будет лишь дописать строчку в файл в проекте, который будет использовать "библиотеку"
    3) git submodule, как выше предложил 183614956
    Ответ написан
    2 комментария
  • Можно ли реализовать iOS приложение с online магазином по продаже материальных вещей без использования in-app purchase, paypal и прочее?

    Flanker_4
    @Flanker_4
    Оказывается в апп сторе можно покупать даже машины

    Первое что нашел в гугле по дев части www.sitepoint.com/accepting-payments-ios-apps (сразу оговорюсь, не знаю насколько инфа актуальна)
    On the other hand, if you are selling physical goods or services, the App Store rules require you to use a 3rd-party payment processor, like Stripe, Braintree, Authorize.net or Paypal and not the Apple In-App Purchase framework.
    Ответ написан
    Комментировать
  • Обязатально ли должен быть включен Bluetooth при использовании технологии iBeacon для iOS приложения?

    Flanker_4
    @Flanker_4
    Ответ на первый вопрос:
    To use iBeacon, you need iOS 7 or later, Bluetooth turned on, and a compatible iOS device.
    support.apple.com/en-us/HT202880

    Ответ на второй вопрос:
    Про handoff можно почитать тут https://developer.apple.com/library/ios/documentat... , но я сомневаюсь, что можно реализовать то, о чем Вы говорите, так как технология нацелена на другие вещи. iBeacon вроде позволит пропушить локальную нотификацию, и вы увидите на лок скрине тоже, но только c надписью, иконкой и ДАЖЕ ЗВУКОМ. Это же лучше :D
    Ответ написан
    Комментировать
  • Как сделать border-bottom для textfield?

    Flanker_4
    @Flanker_4
    Вам нужно использовать просто кастомный бэкграунд, в виде картинки. stackoverflow.com/questions/5094907/custom-uitextfield. Ну или как вариант, переопределить drawRect: и нарисовать там все что захочется. Есть еще различной степени костыльности варианты..
    Ответ написан
  • Как сделать размер WebView динамическим?

    Flanker_4
    @Flanker_4
    Есть два варианта:
    1) Зажимаете правой кнопкой на UIWebView в IB и тянете на родительскую вьюшку(это проще сделать в навигаторе , который слева), там устанавливаете первый раз Center X, опять перетаскиваете и выбираете Center Y, Equal Width, Equal Height. Ну т.е. центрирование в родительской вьюшке и одинаковые размеры с ней.
    Это же можно сделать в тех менюшках, что вы привели на скрине, но перетаскиванием вот таким быстрее :)
    2) Устанавливаете Leading,Tralling, Top, Bottom в 0 , или сколько Вам там нужно (для этого на приведенном скрине нужно нажать на красные линии вот такой формы |-|, на все 4 штуки. Там же ставите галочки на против width height и обязательно нажимаете кнопочку внизу AddConstraints (в скобках будет их количество, а именно 6 шт). После этого выбираете webView и в свойствах (панель слева) на вкладке размеров находите constraint width и height и меняете у них тип с равно(=) на >=. Ну и указываете минимальный размер, к примеру 10пикселей. Это будет значит следующее - прибить вьюху к границам родительской, при этом возможно изменять высоту и ширину но не менее такого-то значения
    Ответ написан
  • В какой мере возможно управление параметрами камеры телефонов, можно ли залочить фокусировку?

    Flanker_4
    @Flanker_4
    В iOS 8 вроде предоставили доступ к этим параметрам
    The AVFoundation framework makes it easier than ever for users to take great photos. Your app can take direct control over the camera focus, white balance, and exposure settings. Your app can also use bracketed exposure captures to automatically capture images with different exposure settings.

    AV Foundation Framework Reference

    Еще вот тут можно посмотреть (обратите внимание на свойства и методы Available in iOS 8.0 and later. Ну и само собой на раздел Tasks)
    Ответ написан
    Комментировать
  • Копируются ли заново ресурсы при обновлении приложения?

    Flanker_4
    @Flanker_4
    Если ресурс в бандле приложения, то он будет скопирован и вам, соответсвенно, делать ничего не нужно.
    Если же ваш ресурс находился в папке Documents\Cache\ etc, то прийдется заморачиваться с миграцией (как это делается в случае с core data)
    Ответ написан
    Комментировать
  • Как выполнить цикл дочерних значений?

    Flanker_4
    @Flanker_4
    Я не вижу смысла удалять все subviews и у дочерних элементов, имхо хватит только верхнего , т.е. что-то такое
    [view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
    Но если нужно уж все то как-то так.
    -(void) removeSubviews:(UIView*) view{
         for (UIView *child in view.subview){
               [self removeSubviews:child];
         }
         [view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
    }
    Ответ написан
    4 комментария
  • Как заставить работать scrolling в ios приложении?

    Flanker_4
    @Flanker_4
    А, понятно. для этого Вам нужно выстроить немного другую иерархию:
    базовая вьюшка - uiscrollview, содержащая в себе вверху uiimageview с картинкой и под ней UILabel с текстом и выставленным multiline (ну или uitextview с отключенным скролом что бы не конфликтовать). Для uiscrollview должен быть корректно установлен contentsize
    Ответ написан
    5 комментариев
  • Как устранить ошибку Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer bounds contains NaN: [nan 1365; 50 320]?

    Flanker_4
    @Flanker_4
    залейте проект в гит, если не сложно
    Ответ написан
    Комментировать
  • Как сделать переключатель между UITableView и UICollectionView?

    Flanker_4
    @Flanker_4
    тут не нужна uitableview
    все делается средствами uicollectionview
    почитайте поподробней документацию. если не вдаваться в детали, то Вам нужно объявить два lyouta collection view, один списковой, второй плиточный. и при изменении отображения выбирать нужный layout через setCollectionViewLayout:

    https://developer.apple.com/library/ios/documentat...
    Ответ написан
    Комментировать
  • Проблема с переопределением touchesEnded для подкласса UICollectionViewCell?

    Flanker_4
    @Flanker_4
    Вот только ограничение на выделение нужно было делать в
    - (BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath
    Ответ написан
    Комментировать
  • UITableView - как увеличить кеш ячеек?

    Flanker_4
    @Flanker_4
    Вы путаете причину и следствие из-за отсутсвия понимания Работы table view.

    Это не список, как Вам может показаться, это скорей барабан. Ячейка которая уходит вверх, за пределы области видимости, тут же телепортируется вниз и выезжает от туда(как буд-то вы мешаете колоду карт) По этому то создание и заполнение ячейки в дата соурсе такое "странное". хотя в последних версиях эту сложность скрыли за сахарком. И это нельзя поменять в UITableView, хотя....

    Ну так вот, возвращаясь к Вашей проблеме: Вам не нужно увеличивать кэш или разводить костер вокруг ячеек uitableview - это путь в никуда.
    Вам просто нужно отделить котлеты от мух.
    завести объект или словарь (как предлагает @ManWithBear), который будет описывать состояние ячейки. так называемую модель. Пример: для ячейки с тремя чекбоксами это будет объект с тремя булевскими свойствами.
    Далее, при проклацывании любого из чекбоксов изменять соотвествующее свойство у обьекта (запоминать изменение). А при отображении ячейки вытаскивать это булевское значение и ставить переключатели в нужное значение. И Вы не поверите, но календарь в ios работает именно так, только модель там в coredata'овском ларчике.
    Ответ написан
    Комментировать
  • Изменение модели (CoreData) - как бороться с ошибкой?

    Flanker_4
    @Flanker_4
    Вам нужно провести миграцию. существуе два вида:
    1. простая (lightweight), в данном случае от Вас требуется сделать "три клика", сохранив старую модель хранилища. Все остальное за Вас сделает core date. Но есть небольшие ограничения на изменение модели, лишь простое добавление сущностей, переименовывание и т.п. гуглите по тэгам "lightweight core data migration". Ах да, старую модель нужно сохранять до изменений(это важно!). т.е. создали вы сущность Автомобиль , чего то надобавляли в него и остановились на законченном варианте. сохраняете модель и не трогаете ее, а все новые изменения ведете в новой модели . xcode помогает менеджить различные версии моделей.
    2. все ручками, когда вы не можете использовать простую миграцию из-за существенного изменения модели

    все это подробно расписано в офф. документации (ну или том же гугле)

    https://developer.apple.com/library/ios/documentat...
    Ответ написан
    Комментировать
  • Как сделать повторяющуюся анимацию в IOS?

    Flanker_4
    @Flanker_4
    Самым правильным решением будет использование CABasicAnimation (нагуглить примеры довольно легко). Там есть свойство repeatCount, и есть значение для него HUGE_VALUE , хэх

    есть еще костыльный вариант
    Ответ написан
    Комментировать
  • Как увеличить количество отзывов UITouch?

    Flanker_4
    @Flanker_4
    Скорей всего Вы в методе touchesMoved пытаетесь "рисовать", что съедает ресурсы и программа начинает спотыкаться. попробуйте удалить код рисования и посмотрите, участился ли вызов метода. если это так, то тогда в методе touchesMoved просто запоминаете координаты , а парарллельно уже по тайиеру(или каким-то другим способом) запускаете перерисовку экрана, опытным путем подобрав частоту.
    Ответ написан