- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
self.view.frame=CGRectMake(10,10, 300, 200);
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell...
cell.selectionStyle=UITableViewCellSelectionStyleNone;
switch (indexPath.row) {
case 0:
//ToDo: Add UserInfo's view into TableView
[cell.contentView addSubview:upperView];
break;
case 1:{
//Remove preous view/tableview
for (id vw in cell.contentView.subviews) {
if ([vw isKindOfClass:[UITableView class]]) {
[vw removeFromSuperview];
}
}
//
//Add View which contain tableview
EditListViewController *editlistvw=[[EditListViewController alloc] initWithNibName:@"EditListViewController" bundle:nil] ;
editlistvw.view.frame=CGRectMake(10, 10, 300, 20);
[cell.contentView addSubview:editlistvw.tableView];
//
break;
}
case 2:
//Remove previous view/tableview
for (id vw in cell.contentView.subviews) {
if ([vw isKindOfClass:[UITableView class]]) {
[vw removeFromSuperview];
}
}
break;
default:
break;
}
return cell;
}
Творение индийского джуниора, совместно с которым приходится делать проект
guest 29.06.2012 14:35 # +2
bormand 29.06.2012 14:43 # +2
roman-kashitsyn 29.06.2012 16:26 # +1
vistefan 01.07.2012 09:17 # +2
bormand 01.07.2012 10:11 # +2
wvxvw 01.07.2012 22:30 # 0
А заодно и вопрос к знатокам Obj-C: а в языке есть какие-нибудь средства / техники для того, чтобы уменьшить количество слов на погонный метр? Просто с чисто типографской точки зрения, Obj-C больше всего на 1С похож изза длиннющих строчек и названий. Даже Ява не такой многословной кажется в сравнении. Ну, чтобы, например задефайнить типа:
?
FAKYOUINTIRNEAT 02.07.2012 14:23 # +2
Обычно, если параметров больше двух-трех, описание метода разбивается по параметрам и получается примерно так:
Аналогично, с вызовами метода:
wvxvw 02.07.2012 14:35 # +1
Т.е. в Питоне и Лиспе есть похожие вещи, но там они не обязательны, и собственно, используется для того, чтобы не приходилось забивать аргументы null'ами если нужно использовать только последний из списка.
FAKYOUINTIRNEAT 02.07.2012 15:04 # 0
Выглядит немного странно, да, но опять же, вызовы все же проще читаются. В первом случае будет не сразу понятно, создается ли прямоугольник из координат левой верхней точки и ширины с высотой или из координат двух противоположных точек:
А во втором да: Но так не принято, правильней назвать метод так:
bormand 02.07.2012 16:31 # 0
[Rectangle makeRectWithX:10 y:20 width:30 height:40]
Если честно - смотрится как говно.
[Rectangle makeRect x:10 y:20 width:30 height:40]
Имхо, смотрелось бы намного приятней и наглядней...
P.S. Все меньше желания заниматься изучением ObjectiveC...
bormand 02.07.2012 16:40 # 0
[Rectangle makeRectWith x:10 y:20 width:30 height:40]
FAKYOUINTIRNEAT 02.07.2012 17:13 # 0
Повторюсь: метка входит в имя метода и это сделано для повышения читабельности – вызов можно буквально прочитать как предложение. И мы говорим о методе с именем makeRectWithX:y:width:height:
bormand 02.07.2012 17:18 # 0
Ну вот моему взгляду, не привыкшему к ObjC, легче читать с пробелом. И сигнатуру я бы прочел как makeRectWith:x:y:width:height. Имхо (и это моё имхо), первая метка слитая с именем смотрится ужасно. Мы же, в конце концов, говорим о методе, который выставляет все 4 свойства, а не только Х. Тогда почему Х как-то выделяется среди них?
FAKYOUINTIRNEAT 02.07.2012 18:04 # 0
bormand 02.07.2012 18:10 # 0
читается как add observer selector name object? Что-то скрытого смысла я тут не вижу ;(
Видимо плохой пример?
> Просто вы просто воспринимаете "метки", как дополнительные штуки в сигнатуре
Да, вы правы. Идею я понял, но видимо надо еще привыкнуть к таким названиям.
FAKYOUINTIRNEAT 03.07.2012 10:24 # 0
Пример нормальный, это я, пожалуй, немного преувеличил, говоря "буквально". Предлоги все же иногда опускаются, когда они достаточно очевидны. Данный метод читается так: add observer x with selector y for name z from object o.
bormand 03.07.2012 10:43 # 0
FAKYOUINTIRNEAT 03.07.2012 10:54 # +1
ios_shit_coder 18.07.2012 14:57 # 0