2 Stimmen

uiview durch uibutton programmatisch entfernen

Ich stecke fest, wie die uiview durch Benutzer klicken Sie auf die uibutton zu entfernen, die uibutton laden, sobald die Szene geladen wird. Die uibutton ist nicht immer Antwort als gut. Wie sollte ich es einrichten? Bitte helfen Sie mir, vielen Dank.

- (void)viewWillAppear:(BOOL)animated {
    UIView *holderView = [[UIView alloc] initWithFrame:CGRectMake(0, 50, _imagePicker.selectedImage.size.width, _imagePicker.selectedImage.size.height)];
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:[holderView frame]];
    [imageView setImage:_imagePicker.selectedImage];
    [holderView addSubview:imageView];

    UIButton *removeSticker = [UIButton buttonWithType:UIButtonTypeCustom];
    removeSticker.frame = CGRectMake(0, 0, 200, 100);
    [removeSticker setImage:[UIImage imageNamed:@"cancel-disabled.png"] forState:UIControlStateNormal];
    [removeSticker addTarget:holderView action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
    [holderView addSubview: removeSticker];

    UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scale:)];
    [pinchRecognizer setDelegate:self];
    [holderView addGestureRecognizer:pinchRecognizer];

    UIRotationGestureRecognizer *rotationRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotate:)];
    [rotationRecognizer setDelegate:self];
    [holderView addGestureRecognizer:rotationRecognizer];

    UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)];
    [panRecognizer setMinimumNumberOfTouches:1];
    [panRecognizer setMaximumNumberOfTouches:1];
    [panRecognizer setDelegate:self];
    [holderView addGestureRecognizer:panRecognizer];

    UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
    [tapRecognizer setNumberOfTapsRequired:1];
    [tapRecognizer setDelegate:self];
    [holderView addGestureRecognizer:tapRecognizer];

    [parentPreviewView addSubview:holderView];
}

- (void) buttonClicked: (id)sender
{
    [self.view removeFromSuperview];
}

1voto

Hejazi Punkte 15676

Ändern Sie das Ziel von holderView a self :

[removeSticker addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];

und ändern Sie den Code, der die Ansicht entfernt, wie folgt:

[holderView removeFromSuperview];

0voto

ProgrammingNinja Punkte 2230

Verwenden Sie die folgende Technik: Geben Sie den Tag jedes Steuerelements an, das Sie in Ihrer Ansicht haben, und profitieren Sie von der Eigenschaft "Tag".

Angenommen, ich habe als Tag 100 angegeben. Dann

 UIButtom *buttonToRemove=(UIButton*)[self.view   viewWithTag:100];

jetzt zu entfernen (Buttons) verwenden Sie diese

[buttonToRemove removeFromSuperview];

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X