Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Как поймать момент, когда ячейка UITableView показалась на экране?

начал для этого использовать tableView:willDisplayCell:forRowAtIndexPath:
но если там сделать [tableView cellForRowAtIndexPath:indexPath] то ячейку мы не получим, получается её ещё нет в таблице
Ответ: когда ячейка отобразилась на экране
я по indexPath ячейки получаю id материала
и добавляю в очередь загрузку картинки для материала с данным id
когда подходит очередь картинки надо проверить есть ли эта ячейка на экране и изменить на ней индикатор загрузки

Добавлено через 1 минуту
из-за того что очередь подходила раньше раньше отображения картинки, то не где было менять индикатор

Добавлено через 45 секунд
но я уже это переделал, теперь индикатор меняется в модели
Вопрос: Программное создание контролера или варианты реализации меню с подменю на UITableView

 Добрый день!
Имею идею создать список пунктов меню на UITableView. По клику на cell должен совершатся переход в подменю, тоже из UITableView и так далее. Глубина подменю заранее не известно и в процессе варьируется. 
Начал делать так: Создал в сториборд TableViewController для корневого меню, и, от него через segue для меню первого уровня и тут понял что заранее неизвестно количество таких переходов. Помогите решить эту проблему. Может есть какие-то патерны для подобных проблем или создание контролера и сегвея возможно программным путем (если да-как?) или вообще это решается по-другому? 
Ответ:
1) Забей на сториборд

2) я могу предложить пару решений 
первое, при выборе пункта меню, менять данные, с которых рисуется меню и вызывать reloadData.

второе, при выборе пункта меню, пушить новый контролер, в котором отображать UITableView с нужными данными.
при таком подходе будет работать стандартная навигация. 
Вопрос: Динамическая высота ячейки

Добрый день. Подскажите как посчитать высоту ячейки? Все приметы которые я нашел в инете, считают высоту ячейки в зависимости от текста в label. У меня же внутри ячейки containerCell находится tableView внутри которого находится n-тое кол=во ячеек с разной высотой. Думал через layout сделать, но не могу понять, что к чему привязывать, в примере с label было понятно что лебл есть всегда просто изменяется его высота, в варианте с ячейками не известно какие там, внутри, будут ячейки и с какой высотой (определяется все это уже при анализе ответа с сервера), или размер containerCell будет меняться в зависимости от размера tableView находящегося внутри или contentView (или как там оно)
Ответ: Я изучаю vk api и решил сделать отображение постов на стенке юзера. Так как в посте могут быть вложения разного типа (аудио, видео, текст, картинка) этим и вызвано вложение в ячейку, которая отвечает за пост, доп. ячеек для каждого типа вложения. А вообще за секции я как то и позабыл, спасибо, что подсказали
Вопрос: В одной ячейке таблицы несколько повторяющихся элементов

Добрый день. Прошу помощи в виде совета, а не просьбы написать вместо меня. Учусь работать с VK API и решил вывести посты со стены юзера. Если по одному типу данных в ячейке (одна аудиозапись, одно видео, текст, репост) то все просто и это я реализовал, но потом стал вопрос, что делать если в одном посту будет две фотографии или две и больше аудиозаписи)? Раньше было один пост = одна ячейка таблицы (для каждого типа поста своя кастомная ячейка), но как поступить теперь я даже не могу придумать. Была идея все посты сделать массивами, что бы в массиве постов были массивы с находящимися элементами (где два элемента в массиве где 5), но ничего не получается, так как в один массив добавляются данные из других постов (по типам они одинаковые, но должны быть в разных ячейках). Такого элемента как идентификатор поста я не нашел (что бы сравнивать если эта фотка принадлежит этому посту то добавляем к массиву, если нет то создаем новый. Именно в этом месте я и застрял даже идей уже нет.

Даже если я распределю данные по массивам, как их потом правильно отображать, если с картинками все просто, внутрь ячейки вкинуть колекшнВью и в Колекшине отображать картинки, то как с аудиозаписями поступить? Засунуть внутрь ячейки еще один tableView и уже во внутреннем TV отображать аудиозаписи (вариант хорош тем, что у меня сохранится контроль над кнопкой запуска/остановки файла), но а вообще как этот вариант?
Буду благодарен за помощь в первую очередь интересует то как эти данные сохранить (может в классах или родительском классе создать какое то свойство или массив)
Ответ:
Сообщение от Slava-hacker32
Такого элемента как идентификатор поста я не нашел
вот честно незнаком с вк апи, но может быть они банально по таймстемпу разделяются?
не уверен что за одну секунду реально создать несколько постов, а если и реально, то возможно время уточняется по миллисекундам?

поискал - вот есть , как по мне все доступно описано, как решить ваш первый вопрос,
айдишники есть, все гут

Сообщение от Slava-hacker32
если с картинками все просто, внутрь ячейки вкинуть колекшнВью и в Колекшине отображать картинки, то как с аудиозаписями поступить? Засунуть внутрь ячейки еще один tableView и уже во внутреннем TV отображать аудиозаписи (вариант хорош тем, что у меня сохранится контроль над кнопкой запуска/остановки файла), но а вообще как этот вариант?
второе - а чем колекшн вью "проще" или лучше чем тейбл вью?
как по мне - одно и тоже
раз считаете, что колекшн вью - ок, тогда таблица - тоже ок
другой вопрос - кто будет датасорсом для этих таблиц или колекшнов внутри ячеек
так тут я бы конечно выделил отдельные классы для этого и сделал бы их переменными внутри основного датасорса или контроллера, чтобы они могли тригерить ему свои ивенты, за которые они не могут принять решения сами,
но ради всего святого, не делайте ячейку датасорсом, ячейка - это просто вью

Вопрос: UItableView, textField и клавиатура

Привет всем.

После перехода на 5-й хкод и тестирования приложения написанного для 5-6 версий иоса столкнулся с багом, на который на офф форуме пока ответа не получил. Может у кого-нибудь такое было?

в 6-ой версии так

(IMG:)


а в 7-ой вот так

(IMG:)

Это сообщение отредактировал(а) spens - 19.9.2013, 13:52
Ответ:
выкрутился ручным UIKeyboardWillShow/HideNotification и UIView animate


Вопрос: Table View Controller не видно ячеек

Здравствуйте.
Я новичек и решил начать с чтения данной ссылки (Start Developing iOS Apps Today)
Там добавляется Table View Controller, дальше он заполняется (статическими) данными.

Вопрос в том что я не вижу информацию в ячейках. Как её увидеть?
У меня OS X 11b8 и Xcode 7b6. Догадываюсь что проблема из-за этого, но переустанавливать OS как то не хочется.
Ответ: Спасибо , мелочь, а найти долго не мог, уже забросил данный tutorial и по другому начал делать.
Вопрос: Диагональ экрана для iOS разработчиков

Всем привет. Хочу прикупить imac, стоит вопрос не столько в начинке сколько в диагонали экрана. Расскажите кто на чем пишет, достаточно ли 21 дюйма для комфортной работы, болят ли глаза от 27 дюймов? Заранее благодарее.
Ответ: уже года два на 13дюймовом макбуке
Вопрос: Экран загрузки, мобильное приложение iOS/Android

Здравствуйте! Подскажите, экран загрузки приложения, хочу сделать анимацию (gif, apng, mng) при загрузки приложения для iOS/Android. Будет ли это работать, какие есть решения?
Ответ:
Вопрос: Черный экран при смене представления в эмуляторе

Есть 2 представления - книжное и альбомное. При запуске отображается книжное представление. При смене представления с книжного на альбомное (cmd + right) - отображается черный экран. Что не так?

Код

//
//  ViewController.h
//  swap3
//
//  Created by 0xdeadc0de on 05.04.14.
//  Copyright (c) 2014 0xdeadc0de. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (strong, nonatomic) IBOutlet UIView *portrait;
@property (strong, nonatomic) IBOutlet UIView *landscape;
@end


Код

//
//  ViewController.m
//  swap3
//
//  Created by 0xdeadc0de on 05.04.14.
//  Copyright (c) 2014 0xdeadc0de. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#define degreesToRadians(x) (M_PI * (x) / 180)

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    if (toInterfaceOrientation == UIInterfaceOrientationPortrait) {
       
        self.view = self.portrait;
        self.view.transform = CGAffineTransformIdentity;
        self.view.transform = CGAffineTransformMakeRotation(degreesToRadians(0));
        self.view.bounds = CGRectMake(0.0, 0.0, 320.0, 460.0);
        
    } else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
       
        self.view = self.landscape;
        self.view.transform = CGAffineTransformIdentity;
        self.view.transform = CGAffineTransformMakeRotation(degreesToRadians(-90));
        self.view.bounds = CGRectMake(0.0, 0.0, 480.0, 300.0);
        
    } else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
        
        self.view = self.landscape;
        self.view.transform = CGAffineTransformIdentity;
        self.view.transform = CGAffineTransformMakeRotation(degreesToRadians(90));
        self.view.bounds = CGRectMake(0.0, 0.0, 480.0, 300.0);
   
    }   
}
@end

Ответ:
жалко
Вопрос: Перелистывание текста на экранах.

Здравствуйте. Простите, только начинаю изучать, поэтому с терминологией пока проблемы. Надеюсь поймёте.

Ситуация примерно такая... Есть View Controller на котором расположен текст. Вокруг всякая мишура (оформление). Хотелось бы, чтобы при проведению пальцем по экрану (слева направо), текущий текст улетал, а появлялся новый. Из массива или БД - не важно. 

Так как я начинающий, то посмотрел некоторые записи, посты и т.д. и сделал два View Controller'a, которые связал через Swipe и вроде как задача частично решилась. Частично, потому как там перелистывание не такое. Но два View Controller'a это не то. Гипотетически, массив строк может включать и 200 строк, поэтому делать для каждой строки свой View Controller кажется глупостью. Отсюда и вопрос. Как можно скролить строки (TextView) горизонтально? По сути человек должен увидеть примерно так: 
текст1 -> махнул пальцем справо-налево -> текст2 -> махнул пальцем справо-налево -> текст 3 -> махнул пальцем слева-направо -> текст2 (то есть вернулись на 1)


Поясните пожалуйста или ссылки какие-то киньте. 

Благодарю.
Ответ:
Мне помогло) спасибо)