Я новичок в Objective-C. Я создал анимацию, которая перемещает 3 кнопки вверх. Эти кнопки содержат изображения. Однако, когда происходит эта кнопка, она изменяет размеры изображений кнопок и делает их ОГРОМНЫМИ. Я попытался исправить код ниже, чтобы изменить размер изображений кнопок, но я все равно получаю ОГРОМНЫЕ кнопки. Может кто-нибудь, пожалуйста, помогите мне? Ширина: 78 Высота: 76. Я попытался заменить ширину и высоту, но он все еще не работает. Примечание. Просто исправьте код, мне не нужен совершенно другой ответ.Как изменить размер анимации кнопок программно
-(IBAction)Search:(id)sender {
CGFloat screenWidth = self.view.bounds.size.width;
CGFloat screenHeight = self.view.bounds.size.height;
CGFloat normalizedX = (124/320); // You calculate these 'normalized' numbers, possibly from a designer's spec.
// it's the percent the amount should be over, as number from 0-1.
// This number is based on screen width of 320 having x 124 pt.
CGFloat startingX = normalizedX * screenWidth;
CGFloat startingY = (475/200) * screenHeight;
CGFloat width = (42/40) * screenWidth;
CGFloat height = (30/30) * screenHeight;
CGRect startingRect = CGRectMake(startingX, startingY, width, height);
self.button.frame = startingRect;
self.buttonTwo.frame = startingRect;
self.buttonThree.frame = startingRect;
// animate
[UIView animateWithDuration:0.75 animations:^{
CGFloat firstX = (13/770) * screenWidth;
CGFloat lowerY = (403/370) * screenHeight;
self.button.frame = CGRectMake(firstX, lowerY, width, height);
CGFloat secondX = (124/424) * screenWidth;
CGFloat upperY = (347/447) * screenHeight;
self.buttonTwo.frame = CGRectMake(secondX, upperY, width, height);
CGFloat thirdX = (232/680) * screenWidth;
self.buttonThree.frame = CGRectMake(thirdX, lowerY, width, height);
}];
}
Вы хотите, чтобы кнопки мгновенно переходили на тот же самый startRect, а затем анимировали разные адреса? Вы хотите, чтобы их размеры менялись вообще? Выведенный код явно изменяет размеры кнопок, а наблюдение @ DuncanC - это место по математике с плавающей запятой. Если вы хотите, чтобы кнопки оставались фиксированными, используйте CGRectOffset на своих кадрах, которые управляют только происхождением. – danh