iPhone development

Все работает до тех пор пока в моей юрл не появляются пробелы ... Заменил их на %20 ручками

Что значит ручками? Ты ж в программе написал какой-то обработчик. Или нет?
Если нет - напиши обработчик, которому скармливаешь строку с пробелами а получаешь с %20. Регулярки тебе в помощь.

При использовании UIWebView он также отображает ссылки. И эти ссылки работают. Как можно их отключить

При использовании UIWebView непосредственно без использования недокументированных методов отключить ссылки нельзя. Единственное, что мне сейчас в голову приходит, в методе делегата didstartloading остановить загрузку.
[webView stopLoading]. Правда в этом случае нужно ввести какой-то флаг, чтобы ты мог загружать то, что тебе нужно.
 
Кстати Ленин я смог узнать высоту каждой html страницы. Но всеравно пока не работает по нормальному. Просто метод в котором отпределяется размер срабатывает после метода который задается размер ряда. Когда я попытался сразу определить размер после loadhtmlString то размер был равен нулю. Сейчас голова загружена. Попозже поковыряю код. Получится или не получится всеравно выложу пример.
 
Ну узнать размер после загрузки страницы не проблема, просто запустить java скрипт или посмотреть размер скроллера.
А сразу ты его не определишь, так как WebView, пока не загрузит страницу, сам ее размеров не знает.
 
Бох с этой таблицей. Вот я попытался привязать UIWebView к скроллеру. То что в приделах экрана то отображается. Что за приделами серое. Можно ли как нибудь решить эту проблему? т.е. я начинаю скролить, а у меня все серое.
 
Ты не понял насчет скроллера. На UIScrollView ВебВью работать не будет т.к. контент свой прорисовывает тот, что в пределах ее фрейма. Когда ты скроллишь UIScrollView ты просто переносишь фрейм вебвью, встроенный скролл Веба перекрывается скроллом СкроллВью.

А есть еще UIScroller - это как раз внутренний скроллер ВебВью. Он уже существует когда существует ВебВью. Вот по его размеру и можно узнать размер контента, но это уже undocumented.
 
Ох я и запутался. Давай пойдем с другой стороны.
Возможноли как нибудь вывести список WebView так чтобы он нормально скролился? Пусть все WebView будут одинакового размера.
Когда я использовал таблицу я делал это вот так. Я написал метод additem который добавлял данные в таблицу. Кроме этого в этом методе создавали объект типа UITableViewCell и UIWebView. У UIWebView сразу создавалась страничка. Потом к UITableViewCell прикреплял view UIWebView. Вроде все работало, но не всегда при скроле отображались все странички. Решил забить на таблицу сделать при помощи скрола и опять грабли. :(
 
Я опять вернулся к таблице. Пусть ряды будут не изменяемые. Как избавиться проблемы когда некоторые пункты не перерисовываются? Я сделал следующее. Вернул версию где UIWebView создаются по cellForRowAtIndexPath. При создании я их делаю невидемыми, а когда приходит сообщение webViewDidFinishLoad делаю видимыми. Да так все работает. Я когда скролю сначала появляются пустые ячейки, а потом в них загружается контент(при таком способе UIWebView загружается 100 процентно). Меня все устраивает кроме одного. Иногда перед тем как появляется контент сначала на долю секунды появлется старый, а потом тот что надо. Как можно от этого избавиться?
 
Иногда перед тем как появляется контент сначала на долю секунды появлется старый, а потом тот что надо. Как можно от этого избавиться?

попробуй не перезагружать ВебВью, а пересоздавать.
 
Вебвьюхи пересоздаю. т.е. ничего не беру из кеша. Вроде нормально. Но иногда проскакивает один ряд без инфы :( причем это тупо не перерисовалась таблица. Если поверх таблицы вывести какую нибудь вьюху и убрать ее то пункт нарисуется. Решил проблему с заданием высоты ряда в таблице, когда в каждом ряде вебвьюха. Я перед тем как добавлять данные в таблицу сначала создаю вебвьюху(hidden=YES). Загружаю туда инфу. Когда сработало сообщение о том, что инфа загружена я определяю размер окна. И только после этого добавляю данные в таблицу. Да способ кривой. Но реально работает. Вот только проблема, что странички могут загрузиться не по порядку. Поэтому надо данные писать в ассоциативный массив. Но это мелочи.
У меня теперь вот какой вопрос. Мне нужно сохранить логин и пароль. Для того чтобы при каждом логине не вводить его. Понятное дело в обычный файл я не хочу сохранять. Есть ли на айфоне какието специальные средства для этого? И как ими пользоваться?
 
Есть ли на айфоне какието специальные средства для этого? И как ими пользоваться?

не приходилось такое реализовывать. Я просто в файл кидал, там не очень критично эьл было. Как вариант - сохраняй в файл хеши Md5 для логина и пароля. Исходники есть в инете.
 
Ленин у меня очередной вопрос. Создавая окно в окне в одном месте идет смещение окна на 20 пикселей вниз. И мне приходится ставить координату начала по вертикале -20. Не подскажешь где и что я мог напороть. Вообщем я создаю TabBarController.
В него добавляю вкладки. При создание нигде никакие размеры фрейма не задаю. TabBar лежит нормально на окне. А то что внутри него съезжает вниз. Для этого я для каждой вкладки внутри него указал размеры фрейма вот так self.view.frame = CGRectMake(0.0f, -20.0f, 320.0f, 480.0f); Но это не дело так писать. Что я сделал не так?
 
ну, это гадание на кофейной гуще. Напороть ты мог где угодно. Но вообще 20 - это размер статус бара. Может быть дело в нем. Странно, что у тебя съезжает вниз, обычно из-зи него съезжает вверх.
возможно ты где-то указал размер окна [[UIScreen mainScreen] bounds] , а где то в другом месте [ [UIScreen mainScreen] applicationFrame]. При определенных обстоятельствах эти окна могут различаться на 20.
 
ну, это гадание на кофейной гуще. Напороть ты мог где угодно. Но вообще 20 - это размер статус бара. Может быть дело в нем. Странно, что у тебя съезжает вниз, обычно из-зи него съезжает вверх.
возможно ты где-то указал размер окна [[UIScreen mainScreen] bounds] , а где то в другом месте [ [UIScreen mainScreen] applicationFrame]. При определенных обстоятельствах эти окна могут различаться на 20.

Действительно по моим словам понять, чтото очень тяжело. Вот пример.
Я вот так добавляю к главному окну таббар.
tabBarCube = [[UITabBarController alloc] init];
testViewController = [[TestViewController alloc] init];
tabBarCube.viewControllers = [NSArray arrayWithObjects:testViewController, nil];
[window addSubview: tabBarCube.view];

Вот инициализатор testViewController
-(id) init
{
if(![super init])
return nil;
self.view.backgroundColor = [UIColor blueColor];
TestViewController2* tvc=[[TestViewController2 alloc] init];
[self.view addSubview:tvc.view];
return self;
}
Вот инициализатор TestViewController2
-(id) init
{
if(![super init])
return nil;
self.view.backgroundColor = [UIColor redColor];

return self;
}
Результат вот такой.
attachment.php

Почему окно с красным фоном съехало вниз на 20 пикселей?

Если интересно то вот сам проект.
 

Вкладення

  • Снимок экрана 1.png
    Снимок экрана 1.png
    8.8 КБ · Перегляди: 380
А ты размеры вьюх пробовал отслеживать? Мне кажется нет.
Почему у тебя в коде нигде явно не задается фреймы вью? Еще нужно пользоваться методами loadView, а не вызывать на прямую self.view, потому что в этом случае контроллер создает вью с фреймом [ [UIScreen mainScreen] applicationFrame], который равен 0, 20, 320, 460 (с учетом статусбара).
Вот и получается что ты доюавляешь subView с координатой начала 0, 20 на свою основную вью, она началом координат считает верхнюю точку вью и располагается как ей и задано с точки 0, 20.

Потому, определяй loadView и задавай размеры [ [UIScreen mainScreen] bounds] и будет тебе счастье
 
Groupped table view and thumbnail inside cell and Core Data predicate

Приветствую, есть вопрос:
Как добавлять в cell картинку чтобы края cell не менялись на острые (имеется в виду групповой вид).

+ 1 вопрос: можно ли в core data сделать сложный Predicate чтобы сделать запрос вроде:
Код:
select * from sometable where sometable.name LIKE %name% and sometable.secondname LIKE %secondname%
 
Останнє редагування:
Как добавлять в cell картинку чтобы края cell не менялись на острые (имеется в виду групповой вид).

я просто размеры картинки делал меньше размеров ячейки и центрировал.

с Core Data тщательно не работал, ничего не могу сказать.
 
ай не то это, чуваки из эпла то как то сделали.
 
Чуваки из эпла много чего сделали, но неизвестно как. Учитывая направленность эпла на анимации и т.п. могу предположить, что просто в методе drawRect края закрасили прозрачным цветом.
 
Приветствую, есть вопрос:
Как добавлять в cell картинку чтобы края cell не менялись на острые (имеется в виду групповой вид).

+ 1 вопрос: можно ли в core data сделать сложный Predicate чтобы сделать запрос вроде:
Код:
select * from sometable where sometable.name LIKE %name% and sometable.secondname LIKE %secondname%

Код:
[cell setImage: image ];
- криво ставит?

есть еще cell.contentView

а по sql все просто


Код:
const char *sql = "UPDATE Tasks SET sync = ? WHERE  id = ?";
	if(sqlite3_prepare_v2(database, sql, -1, &updateStmt, NULL) != SQLITE_OK)
	{
		NSAssert1(NO, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));
		//NSLog(@"Error");
	}
	
	sqlite3_bind_int(updateStmt, 1, sync);
	sqlite3_bind_int(updateStmt, 2, idOfTask);
	
	if(SQLITE_DONE != sqlite3_step(updateStmt))
	{
		NSAssert1(NO, @"Error while creating add updateStmt. '%s'", sqlite3_errmsg(database));
	}
	
	//Reset the add statement.
	sqlite3_reset(updateStmt);



--

Тільки зареєстровані користувачі бачать весь контент у цьому розділі
- iPhone, Mac and other dev
 
Только начал разбираться с objective-c. Потому прошу прощения за, может, глупые вопросы.

В чем разница между
NSNumber *newNumber = 1;

и

NSNumber *newNumber = [NSNumber alloc] init];
new Number = 1;

Я понимаю, что во втором случае мы выделяем память для нового объекта, на которые ссылается *newNumber и инициализируем его, но как я понимаю в 1й строке все это делается вне глаз разработчика? Или как?
 
Назад
Зверху Знизу