gpt4 book ai didi

ios - 如何以定时速率动态调整对象大小

转载 作者:行者123 更新时间:2023-11-28 22:22:18 25 4
gpt4 key购买 nike

在触摸对象时调整对象大小的最佳方法是什么?

基本上,我想要一个盒子(最好是可以有圆角的盒子)。单击框的左半部分时,框将在 y 轴上缓慢而平滑地增大尺寸,将其下方的相似类型的对象向下推。当点击框的右半部分时,框会缓慢而平滑地缩小。

我想知道我应该为此使用什么类型的对象。我在想按钮,因为它们可以有圆角( How to round the corners of a button )。我将有一个具有彩色背景的大按钮和两个较小的按钮,每个按钮将占据父按钮的一半。

我将从上到下按升序为所有按钮提供整数标识符。当按钮 3 变大时,我将相应地移动所有按钮 4 和上下。

基本上,按钮只能是固定大小(为简单起见,我们只能说是 10 的倍数),但我想为它们制作动画,使其在这些大小之间平滑移动。此外,当用户第一次点击按钮时,我希望动画开始并线性继续,直到用户移开手指,此时我希望它动画到下一个 10 的倍数。我应该如何处理这部分?

我还需要使包含按钮的 View 可滚动,因为我希望人们能够制作比屏幕高度更高的框。我该怎么做?

如果您有任何其他建议,我们也欢迎。

最佳答案

把其他 UI 元素的角圆起来没有问题,你只需要包括

#import <QuartzCore/QuartzCore.h>

//and create corner on layer of ui element
[_myView.layer setCornerRadius:8.0f];

要检测哪个部分被点击,使用touchesBegan:touchesEnded: 方法,如this post .每次单击屏幕时,您都必须检测触摸是在您的 ui 元素上,还是在左侧或右侧。

为了使您的 ui 元素动起来,我建议为 UIView 创建一个 category。例如,此代码会将您的元素移动到另一个位置:

- (void)animateMyViewWithDuration:(float)duration 
andRepeat:(int)repeat{

[UIView animateWithDuration:duration animations:^{
self.frame = CGRectMake(self.frame.origin.x,
self.frame.origin.y + 20,
self.frame.size.width,
self.frame.size.height);
} completion:^(BOOL finished) {

if(repeat > 0){
[self animateMyView:view
withDuration:duration
andRepeat:(repeat - 1)];
}
}];
}

将其包含在您的新类别中,将类别包含在您的 UIViewController 中:

#import "UIView+CategoryName.h"

如果触摸符合您的需要,则在您的 touch 方法中调用它:

[_myView animateMyViewWithDuration:0.2f andRepeat:5];

您可以编写类别方法来随心所欲地移动 View ,如果您将其抽象化,您也可以在下一个项目中使用新类别。

关于ios - 如何以定时速率动态调整对象大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19997529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com