WebHU - Programozási kérdések és válaszok

gomb a táblázatnézet cellában, amely nem válaszol az index elérési útjával

Van egy táblázatnézetem és minden cellában két gombom, hirdetés szerkesztése és törlése. amikor a felhasználó egyszerre kattint a szerkesztésre, ugyanabban a sorban a Mégse gomb képének meg kell változnia. A kód jól működik, de amikor az első cella szerkesztési gombjára kattintok, a harmadik cella képének megszakítása gombja megváltozik az első cellához képest. mit tegyek ehhez? így megváltoztatja ugyanannak a cella gombnak a képét..

Itt a kódom!!

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

simpleTableIdentifier = @"MenuNameCell";
cell = (MenuNameCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell== nil) {
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MenuNameCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];
    NSLog(@"---------new cell agin");   
}

 else
{
    NSArray *arrayView = [cell.contentView subviews];
    for (UIView *vTemp in arrayView)
    {
        [vTemp removeFromSuperview];
    }

    NSLog(@"---No New Cell hiiii");
    // Setting Tag To UIButton
    _checkButton = (UIButton *)[cell.contentView viewWithTag:indexPath.row];
    _cancelButton = (UIButton *)[cell.contentView viewWithTag:indexPath.row];

}
// Creating Label Menu Name
_nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(8, 11, 82, 21)];  
_nameLabel.backgroundColor = [UIColor clearColor];
_nameLabel.text =  [_hotel._orderedMenus objectAtIndex:indexPath.row];

// Creating Label Menu Cost
_amountMenu   = [[UILabel alloc] initWithFrame:CGRectMake(167, 13, 44, 21)];
_amountMenu.backgroundColor = [UIColor clearColor];
_amountMenu.text  = [[_hotel._menuPrices objectAtIndex:indexPath.row] stringValue];

// Creating Text Field For Order Quantity
_textFieldQuantity = [[UITextField alloc] initWithFrame:CGRectMake(125,14,42,21)];
_textFieldQuantity.userInteractionEnabled = NO;
_textFieldQuantity.text = [[_hotel._selectedQuantity objectAtIndex:indexPath.row] stringValue];

// Creating Button For Check Order
_checkButton  = [UIButton buttonWithType:UIButtonTypeCustom];
[_checkButton setFrame:CGRectMake(232, 13, 25, 28)];
[_checkButton setTag:indexPath.row];
_checkButton.titleLabel.tag = indexPath.row;
[_checkButton setBackgroundImage:[UIImage imageNamed:@"edit.png"]forState:UIControlStateNormal];
[_checkButton addTarget:self action:@selector(editQuantity:) forControlEvents:UIControlEventTouchUpInside];


// Creating Button For CANCEL Order
_cancelButton  = [UIButton buttonWithType:UIButtonTypeCustom];
[_cancelButton setFrame:CGRectMake(265, 13, 25, 28)];
[_cancelButton setBackgroundImage:[UIImage imageNamed:@"cancel.png"] forState:UIControlStateNormal];
[_cancelButton setTag:indexPath.row];
_cancelButton.titleLabel.tag = indexPath.row;
[_cancelButton addTarget:self  action:@selector(cancelOreder:) forControlEvents:UIControlEventTouchUpInside];


// Adding All To Content View
[cell.contentView addSubview:_nameLabel];
[cell.contentView addSubview:_amountMenu];
[cell.contentView addSubview:_textFieldQuantity];
[cell.contentView addSubview:_checkButton];
[cell.contentView addSubview:_cancelButton];


//objc_setAssociatedObject(_checkButton, iindex, indexPath,OBJC_ASSOCIATION_RETAIN );

return cell;

}

-(void)editQuantity:(id)sender{
button = (UIButton *)sender;
row = button.tag;
col = button.titleLabel.tag;
NSLog(@"Check Button index is %d",row);
NSLog(@"cehck title is %d",col);
_textFieldQuantity.userInteractionEnabled = YES;
 _textFieldQuantity.text = [[_hotel._selectedQuantity objectAtIndex:row] stringValue];

UIImage *buttonImage = [UIImage imageNamed:@"edit_over.png"];
[_checkButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
UIImage *buttonImageCancel = [UIImage imageNamed:@"check.png"];
[_cancelButton setBackgroundImage:buttonImageCancel forState:UIControlStateNormal];
_cancelButton.tag =  0;

} -(void)cancelOrreder:(id)sender{

button = (UIButton *)sender;
row = button.tag;
NSLog(@"The Row Selected iS At Cancel Order ISSSS----%d", row);
if (_cancelButton.tag ==  0){
    _textFieldQuantity.userInteractionEnabled = NO;
    UIImage *buttonImageCancel = [UIImage imageNamed:@"check_over.png"];
    [_cancelButton setBackgroundImage:buttonImageCancel  forState:UIControlStateNormal];
    UIImage *buttonImageCancel1 = [UIImage imageNamed:@"cancel.png"];
    [_cancelButton setBackgroundImage:buttonImageCancel1 forState:UIControlStateNormal];
    UIImage *buttonImage = [UIImage imageNamed:@"edit.png"];
    [_checkButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
    _cancelButton.tag = 1;
}
else
{
    UIAlertView *alert =  [[UIAlertView alloc] initWithTitle:@"iHomeDelivery" message:@"Do You Want To Cancel the Order" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
    [alert show];
    [alert release];
}

}

23.12.2012

  • Adja hozzá a editQuantity kódját: 23.12.2012
  • @rahul - hozzáadva a editQuanty metódust a kódban, kérjük, ellenőrizze, és mondja el, mit tehetek 23.12.2012
  • A Mégse gomb képét a _cancelButton példányváltozó használatával módosítja. Biztos benne, hogy ugyanannak a cellának a Mégse gombjára mutat? Az editQuantity: metódusban a Mégse gombot ugyanabból a cellából kell megkapnia, ha olyan gombot keres, amelynek címkéje megegyezik a szerkesztés gomb címkéjével. Aztán változtasson róla képet. 23.12.2012

Válaszok:


1

Az editQuantity alkalmazásban úgy tűnik, hogy módosítja a _checkButton és _cancelButton háttérképét, de nem adja meg a konkrét példányokat a címkék segítségével.

Említi, hogy a harmadik sorban lévő Mégse gomb változik. Ez az utolsó sor, amely hozzáadásra került a táblázathoz?

SZERKESZTETT Próbáljon ki valami ilyesmit az editQuantity metódusban;

UIView *buttonToEdit;
buttonToEdit = [_cancelButton viewWithTag:row];
[buttonToEdit setBackgroundImage:buttonImageCancel forState:UIControlStateNormal];

Nem teszteltem, de ebben a forgatókönyvben a buttonToEditnek a rákattintott sor gombjára kell mutatnia. Ennek megfelelően a háttérképet az ugyanabban a sorban lévő gombon állítja be.

Remélem működik az Ön számára.

24.12.2012
  • @T Davey nem ez nem utolsó cella ...ha bármelyik cella szerkesztési gombra kattintok, véletlenszerűen megváltozik a többi cella törlés gombja 26.12.2012
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..