Переместить изображение после нажатия кнопки - PullRequest
0 голосов
/ 16 марта 2012

Я программно вставляю свой собственный боттон (изображение) в xCode. После нажатия кнопки UI я хочу переместить кнопку в пользовательское место на экране iPhone.

Программно кнопка:

self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];

    UIButton *MyButton = [UIButton buttonWithType:nil];

    MyButton.frame = CGRectMake(100, 170, 100, 30);

    [MyButton setImage:[UIImage imageNamed:@"tap.png"] forState:nil];

    [self.view addSubview:MyButton];

    [MyButton addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];

Я пытаюсь переместить кнопку после щелчка.

-(void)buttonPressed {
    NSLog(@"Button Pressed!");


    CGRect frame = MyButton.frame;
    frame.origin.x = 100; // new x coordinate
    frame.origin.y = 4; // new y coordinate

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration: 0.1];
    MyButton.frame = frame;
    [UIView commitAnimations];

    }

но ничего не происходит.

Я .h файл

IBOutlet UIButton *MyButton;
@property (nonatomic, retain) UIButton *MyButton;

1 Ответ

0 голосов
/ 16 марта 2012

Было бы проще использовать UIButton, потому что они уже прослушивают события касания.В противном случае вам нужно будет добавить UIGestureRecognizer в ваш UIImageView.Как только вы настроите UIButton в Интерфейсном Разработчике и подключитесь к IBOutlet, вы можете использовать этот же код для его перемещения.

РЕДАКТИРОВАТЬ

Ваша проблема можетбудь то, что вы создаете новую кнопку вместо присвоения свойству MyButton.Вместо:

UIButton *MyButton = [UIButton buttonWithType:nil];

попробуйте:

MyButton = [UIButton buttonWithType:UIButtonTypeCustom]; // UIButtonTypeCustom is what you would need to properly display your image. If you aren't setting an image for the button yet, then instead try UIButtonTypeRoundedRect.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...