我怎么发现翻转动画已完成动画?
我想在动画结束后立即更新标签的文字.
或者如何在翻转动画期间更新视图.
我的主视图控制器(代表我的应用程序中的主菜单)有一个简单的UIView,带有一些子视图.我正在使用模态类型的设计模式,并在最终返回主菜单之前切换到多个其他视图控制器.问题是,在我的其他视图控制器(不是主菜单)中,我经常加载数据量大的图像等有时会导致主菜单(当前不在屏幕上)卸载其视图以响应记忆警告.问题是,当我最终切换回我的主菜单时,屏幕全是黑色的,除了几个UILabel之外都已经取消了.此时,我想重新加载我的视图并重新开始.但是在文档中,它说你永远不应该直接调用-loadView.如何重新加载我的视图?
我正在尝试动画添加新的子视图到表视图.(当用户点击表格视图上方导航栏上的加号按钮时,我想要一个带有文本字段的子视图和一个从导航栏下滑下来的按钮).
但是,当我尝试调用[UIView beginAnimations:@"textFieldSlide", nil]编译器警告我:
行位置RootViewController.m:41:警告:'UIView'可能无法响应'+ beginAnimations ::'
Xcode中的自动完成也无法看到该方法,以及commitAnimations.
我错过了导入来获取这些方法吗?
我有一个视图,其中我有几个标签,我想在我的应用程序中的某些条件下动态清除视图(删除所有标签).
请帮我
此致,Pratik
我正在为我的应用程序添加自定义按钮/键盘.到目前为止,我有一个UIImageView子类,其中包含一个动画,可以从屏幕底部滑动,然后在用户不再需要时向下滑动.但是,我无法将UIButtons添加到此UIImageView中.
由于这是UIView的子类,我试图通过initWithFrame:方法向我的视图添加按钮.(slideDown方法是添加的动画)
在我的UIImageView子类中,我添加了一个UIButton ivar对象:
-(id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame: frame]) {
UIButton *button = [UIButton buttonWithType: UIButtonTypeRoundedRect];
button.frame = CGRectMake(16.0, 20.0, 50.0, 50.0);
[button setTitle: @"Go" forState: UIControlStateNormal];
[button addTarget: self action: @selector(slideDown) forControlEvents: UIControlEventTouchUpInside];
self.button1 = button;
[self addSubview: button1];
NSLog(@"Button added");
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
在我的视图控制器中,我在 - (void)viewDidLoad:方法中实例化我的UIIMageView子类,如下所示:
-(void)viewDidLoad {
//other objects init'ed
ButtonPad *customPad = [[ButtonPad alloc] initWithImage: [UIImage imageNamed: @"ButtonPad.png"]];
customPad.frame = CGRectMake(0.0, 480.0, 320.0, 300.0);
self.buttonPad = customPad;
[self.view addSubview: buttonPad];
[customPad release]; …Run Code Online (Sandbox Code Playgroud) 我有一个父视图控制器,并且有一个子视图(UIView)。
子视图(名为 xibSubView)称为其他自定义类(xib)文件。
当我单击父视图控制器时,子视图(UIView)将移动到触摸父视图控制器上的开始位置。
父视图控制器有
// UIViewcontroller.h file
.....
@property (weak, nonatomic) IBOutlet XibSubView *xibSubView;
.....
Run Code Online (Sandbox Code Playgroud)
以下代码位于父视图控制器.m中
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
self.subViewConstraint.constant = touchLeftScreenPoint.x ;
self.subViewConstraint.constant = touchLeftScreenPoint.y ;
}
-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
}
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
}
Run Code Online (Sandbox Code Playgroud)
xib(subview-xibSubView) 代码具有相同的委托方法。
// The code is in the parent viewcontroller .m
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
}
-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
}
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
}
Run Code Online (Sandbox Code Playgroud)
xibSubView 中有很多元素。 …
以下代码是从另一个 SO 答案中提取的,但是是否可以延迟该CAKeyframeAnimation动画的开始,类似于 UIViewanimateWithDuration提供delay属性的方式?
根据类文档,该类CAKeyframeAnimation似乎不包含延迟属性。
let animation = CAKeyframeAnimation(keyPath: "transform.translation.x")
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
animation.duration = 1.0
animation.repeatCount = 2
animation.values = [-10, 10, -10, 10, -5, 5, -2, 2, 0]
view.layer.addAnimation(animation, forKey: "shake")
Run Code Online (Sandbox Code Playgroud) core-animation uiview cakeyframeanimation uiviewanimation ios
你好,我是 IOS 新手,我在尝试实现的一项功能上遇到了困难。我有一个UIViewController,其中我UIView在顶部显示一个自定义,下面我有一个动态TableView。我在某些情况下隐藏并显示自定义 UIView,但问题是如果我隐藏它,我的表格不会取代该视图,因此我可以看到那里的空间。我想我已经对自动布局做了一些事情,但我不擅长自动布局,所以如果有人可以提供帮助,那就太好了。我在这里附上演示屏幕,以便您可以理解。UIView我应该做什么才能使其工作,以便表格在隐藏时占据自定义 UIView 位置
这是如果我隐藏上面部分自定义 UIView 得到的结果
我正在尝试对一个被约束 ( iconVerticalConstraint) 位于+100超级视图中心 Y ( ) 的视图进行动画处理,特别是0在动画后到达其右侧 ( ) 位置。这是我的代码:
self.view.layoutIfNeeded()
UIView.animateKeyframes(withDuration: 2, delay: 0, animations: {
UIView.addKeyframe(withRelativeStartTime: 0.0, relativeDuration: 0.25, animations:{
self.iconVerticalConstraint.constant -= 20
})
UIView.addKeyframe(withRelativeStartTime: 0.25, relativeDuration: 0.75, animations:{
self.iconVerticalConstraint.constant -= 80
})
})
Run Code Online (Sandbox Code Playgroud)
我尝试遵循这个问题的答案,但这没有帮助,因为在我的情况下,我的视图包含更多子视图,本质上链接,并且放入layoutIfNeeded()我的动画块将使整个视图动画化,而不仅仅是那个约束。否则这种方法根本不会产生动画。
uiview ×10
iphone ×7
ios ×4
animation ×3
objective-c ×2
swift ×2
autolayout ×1
cocoa ×1
cocoa-touch ×1
controls ×1
memory ×1
uibutton ×1
uiimageview ×1
uikit ×1
uitableview ×1