uiscrollview и uitableview - PullRequest
       16

uiscrollview и uitableview

0 голосов
/ 21 июня 2010

У меня есть прокрутка, которая содержит пользовательский вид и несколько кнопок. я добавил uitableview от IB. и ячейки таблицы создаются динамически. Я добавляю метку и текстовое поле для каждой ячейки таблицы (что-то вроде формы ввода для пользователя.) Я написал код для изменения размера прокрутки при появлении клавиатуры. Поэтому, когда я нажимаю на текстовое поле, клавиатура поднимается и занимает половину экрана, а прокрутка занимает другую половину. проблема в том, что как только это происходит, табличное представление изменяется и отображает только первую ячейку таблицы. Я думаю, что табличное представление обрезается. Независимо от того, что я делаю, табличное представление не показывает всю таблицу ... так что я делаю неправильно.

Вот мой код.

- (void)viewDidLoad
{
    [super viewDidLoad];
    scrollView.contentSize=self.view.frame.size;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell= [[tableView dequeueReusableCellWithIdentifier:CellIdentifier] autorelease];
    if (cell==nil) {

        CGFloat fontSize = [UIFont labelFontSize]-3 ;
        CGFloat topMargin = floor(0.5 * (tableView.rowHeight - fontSize)) -2;

        cell = [[[UITableViewCell alloc]
             initWithFrame:CGRectMake(0, 0, 320, tableView.rowHeight)
             reuseIdentifier:CellIdentifier]
            autorelease];


    UILabel *labelHeading = [[[UILabel alloc]initWithFrame:CGRectMake(10.0, topMargin, 100.0, fontSize + 4)] autorelease];
    labelHeading.text= [[self.menuItems objectAtIndex:indexPath.row] objectForKey:@"itemName"]; 
    [cell addSubview:labelHeading];
    txtValue = [[[UITextField alloc] initWithFrame:CGRectMake(120,topMargin,150 ,fontSize + 4)] autorelease];
    txtValue.text=[NSString stringWithFormat:@" %@",[dataItems objectForKey:@"name"]];  
    [cell addSubview:txtValue];
    [scrollView addSubview:cell];
    }
return cell;
}

Так может кто-нибудь помочь мне. У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 22 июня 2010

Я не совсем уверен, что происходит с вашим решением, но попробуйте это: выберите свой UITableView в IB и на вкладке свойств «Размер» (линейка) убедитесь, что вы установили правильные параметры изменения размера (т. Е. Расстояние дограницы, высота, ширина правил)

...