как я могу установить свойство ячейки table view в приложении для iphone

#objective-c #cocoa-touch #ios #uitableview

#objective-c #cocoa-touch #iOS #uitableview

Вопрос:

У меня есть контроллер представления таблицы, подобный этому, и при нажатии на строку ее цвет становится синим, но я этого не хочу, потому что у меня есть текстовое поле и метка в каждой строке. Как я могу помешать ему стать синим, как это?

снимок экрана приложения

Это мой код для построения ячеек:

 - (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";


    CustomCellStudentData *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {

    //  cell = [[[CustomCellStudentData alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
     cell = [[[CustomCellStudentData alloc] initWithFrame:CGRectZero reuseIdentifier:nil] autorelease];
    }


    switch(indexPath.section)
    {



        case 0:
            switch (indexPath.row) 
        {
            case 0:
            {

                tfText[0] = [[UITextField alloc] initWithFrame:CGRectMake(125,15, 170, 40)];
                cell.accessoryView = tfText[0];
                tfText[0].delegate=self;
                tfText[0].text =@"";
                tfText[0].placeholder =@"<Student Name>";

                cell.primaryLabel.text =@"Student Name: ";

            } 
                break;
            case 1: 
            {
                tfText[1] = [[UITextField alloc] initWithFrame:CGRectMake(125,15, 170, 40)];
                cell.accessoryView = tfText[1];
                tfText[1].delegate=self;
                tfText[1].placeholder =@"<Student Age>";

                cell.primaryLabel.text =@"Student Age: ";


            } 
                break;

            case 2:
            {
                 cell.primaryLabel.text =@"Gender: ";
                segmentedControl = [[UISegmentedControl alloc] initWithItems:nil];
                segmentedControl.segmentedControlStyle = UISegmentedControlStyleBezeled;
                segmentedControl.frame = CGRectMake(100,10,200,30);
                [segmentedControl insertSegmentWithTitle:@"Male" atIndex:0 animated:YES];
                [segmentedControl insertSegmentWithTitle:@"Female" atIndex:1 animated:YES];
                segmentedControl.selectedSegmentIndex = 1;
                segmentedControl.tintColor = [UIColor purpleColor];
                segmentedControl.backgroundColor = [UIColor whiteColor];

                [segmentedControl setMomentary:YES];
                [segmentedControl addTarget:self action:@selector(segmentSwitch:) forControlEvents:UIControlEventValueChanged];
                cell.accessoryView =segmentedControl;
                //[self.view addSubview:segmentedControl];

                /*
                segmentedControl = [[UISegmentedControl alloc] initWithItems:nil];
                [segmentedControl insertSegmentWithTitle:@"Male" atIndex:0 animated:YES];
                [segmentedControl insertSegmentWithTitle:@"Female" atIndex:1 animated:YES];
                segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;
                segmentedControl.frame = CGRectMake(100,10,200,30);
                [segmentedControl setMomentary:YES];
                [segmentedControl addTarget:self action:@selector(segmentSwitch:) forControlEvents:UIControlEventValueChanged];



                */
            }
                break;

            case 3:
            {
                tfText[3] = [[UITextField alloc] initWithFrame:CGRectMake(125,15, 170, 40)];
                cell.accessoryView = tfText[3];
                tfText[3].delegate=self;
                tfText[3].placeholder =@"<DD/MM/YYYY>";

                cell.primaryLabel.text =@"Date Of Birth: ";

            }
                break;
            case 4:
            {
                tfText[5] = [[UITextField alloc] initWithFrame:CGRectMake(125,15, 170, 40)];
                cell.accessoryView = tfText[5];
                tfText[5].delegate=self;
                tfText[5].placeholder =@"<Blood Group>";

                cell.primaryLabel.text =@"Blood Group: ";

            }
                break;

            case 5:
            {
                tfText[6] = [[UITextField alloc] initWithFrame:CGRectMake(125,15, 170, 40)];
                cell.accessoryView = tfText[6];
                tfText[6].delegate=self;
                tfText[6].placeholder =@"<Address>";

                cell.primaryLabel.text =@"Address: ";
            }
                break;

            default:
                break;


        }
  

Ответ №1:

На самом деле это всего лишь одна строка кода…

 [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
  

Ответ №2:

Внутри вашего метода, т. е. cellforrowatindexpath, добавьте приведенный ниже код

 UIView *bckv = [[UIView alloc] initWithFrame:CGRectMake(cell.frame.origin.x, cell.frame.origin.y, cell.frame.size.width,cell.frame.size.height)];
bckv.backgroundColor = [UIColor colorWithRed:106/256.0 green:108.0/256.0 blue:107.0/256.0 alpha:0.0];
cell.selectedBackgroundView=bckv;
[bckv release];  


     OR

cell.selectionStyle=UITableViewCellSelectionStyleNone;
  

Надеюсь, это поможет……

Ответ №3:

 cell.selectionStyle = UITableViewCellSelectionStyleNone;