相关疑难解决方法(0)

如何以编程方式创建布局约束

我在通用应用程序的底部显示一个视图,并在我的视图中动态添加此视图.我希望每次都像iAd一样在底部显示这个视图.在两个方向.如何为此添加约束.请建议.

谢谢

iphone constraints ios

51
推荐指数
4
解决办法
8万
查看次数

将自动布局与核心动画相结合

我是核心动画的新手,我正在努力解决一件事 - 如何将autolayout与核心动画结合起来.实际上我在Core Animation的文档中只找到了一个句子,这里引用的是Autolayout

记住将视图约束更新为动画的一部分 如果使用基于约束的布局规则来管理视图的位置,则必须删除可能会影响动画的任何约束,作为配置动画的一部分.约束会影响您对视图的位置或大小所做的任何更改.它们还会影响视图与其子视图之间的关系.如果要为这些项中的任何项设置动画,则可以删除约束,进行更改,然后应用所需的任何新约束.

但是,正如我所做的那样,所有人并不像看起来那样直截了当.这是我的情景.

我设计了一个广泛使用自动布局的滑动菜单.这是该视图的外观. 在此输入图像描述

我正在使用自动布局约束来强制在滑动菜单中按比例定位这些项目.其实有一个很大的制约那里,我没有要发布的所有那些在我的问题,甚至可能是他们并不需要这个问题的直接回答,但是如果需要的话我可以更新这些职位限制.

您在gif中看到的动画仅通过autolayout到达.我只是说出口,以滑动菜单的高度约束,并以这种方式改变了它:(代码使用Xamarin的MonoTouch写的,但我相信它应该是清楚什么都是在这里完成的纯iOS开发)

private void AnimateSlideMenuAppearance()
    {
        float height;
        if (isSlideMenuShown) {
            height = 0;
        } else {
            height = slideMenuHeight;
        }
        UIView.Animate (0.4,
            delegate {
                this.slideMenuHeightConstraint.Constant = height;
                this.View.LayoutIfNeeded ();
            }, 
            delegate {
                isSlideMenuShown = !isSlideMenuShown;
            });
    }
Run Code Online (Sandbox Code Playgroud)

现在我希望获得更复杂的外观过渡.点击这里查看我想要达到的效果.

只是为了尝试我尝试用一​​系列CABasicAnimations 来实现该动画的消失部分,但是它不成功,我得到了奇怪的行为.

任何人都可以建议我应该在这做什么吗?是否可以使用autolayout来计算视图的位置,但以某种方式覆盖自动布局大小更改之间的动画?我的意思是在我的具体例子中,而不是按比例减小菜单中所有按钮的大小,我需要将FadeOut动画添加到它们,将边界设置为零,并从按钮到按钮从根本上增加动画的开始时间以获得效果我想要的.或者我可能需要完全摆脱autolayout并手动计算大小和动画?

这种情况下的最佳做法是什么 - 当您有复杂的自动布局时,您需要在自动布局更改之间进行自定义核心动画转换?我希望我能很好地描述这个问题.谢谢您的回答.

core-animation xamarin.ios ios autolayout

6
推荐指数
1
解决办法
3368
查看次数