使用autoLayout布局view,在代码中修改frame解决方案

在xib或者storyBoard中给aView使用autoLayout设定了约束,但是想让aView做一个简单的动画,比如从约束的A位置(0,0,100,100)移动到B位置(0,66,100,100)的简单动画。

那么你会发现,如果在xib或者storyBoard中设定了约束,在代码中直接修改aView的frame行不通的。

实现结果就是在ios7上没问题,但是在ios8上发现aView从A移动到B,但是又返回A(具体差别还没找到)

解决方案:

loginViewTopConstraint = [NSLayoutConstraint constraintWithItem:self.loginView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:66];//定义新约束

[self.view removeConstraint:self.topConstraint];//移除旧约束

[self.view addConstraint:loginViewTopConstraint];//添加新约束

[self.view layoutIfNeeded];//使约束生效

时间: 2024-11-04 19:25:32

使用autoLayout布局view,在代码中修改frame解决方案的相关文章

iOS 在xib或者storyboard中添加AutoLayout后,在代码中修改AutoLayout约束条件

如果是viewControl则AutoLayout适配写在- (void)updateViewConstraints方法中修改约束: 如果是view则AutoLayout适配 则在- (void)updateConstraints方法中修改. 可以直接把视图的约束像拖控件一样拖成属性直接在下面的方法里更改即可 //遍历self.myView控件中的约束,找到NSLayoutAttributeHeight控件高度这个约束关系,然后修改 -(void)updateViewConstraints {

Android button, xml文件定义形状,代码中修改背景颜色

1. 首先在drawable文件夹定义一个shape.xml文件,内容如下: <?xml version="1.0" encoding="UTF-8"?><shape    xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <solid android:color=

Unity3d 在代码中修改PlayerSetting的Scripting Backend选择IL2CPP/Mono

在Unity3d 自动打包过程中,如果是要提交到AppStore审核的,需要支持64位,就需要在PlayerSetting中选择 Scripting Backend 为IL2CPP. Unity并没有提供一个明确的接口来设置ScriptingBackend,但是通过查询 PlayerSettings 的所有函数发现有一个属性设置公用接口可以使用. 在代码中可以通过设置属性来选择IL2CPP. 文章转自http://blog.csdn.net/huutu/ http://www.thisisgam

IOS手动添加的View 在代码中使用(自动布局)autoLayout

- (void)viewDidLoad { [super viewDidLoad]; UIButton *btnTest = [UIButton buttonWithType:UIButtonTypeCustom];//不需要去刻意指定x,y的坐标,可以用CGRectZero btnTest.backgroundColor = [UIColor redColor]; btnTest.layer.borderColor = [UIColor yellowColor].CGColor; btnTes

android 布局 View初始化代码自动生成

在android开发过程中,界面布局是及其重要的,但同时也是复杂.有的时候我们急于实际运行查看布局效果.但是android的编译速度我实在不想吐槽啥,尤其在布局越来越复杂,项目越来越大,资源文件越来越多的情况下. 尤其是是android的view的初始化,findViewbyId 完全是体力活,我们完全可以根据布局文件自动生成View的初始化代码. 首先声明: 1.这是及其容易做到的,实用性性一般,但是在复杂布局和首次写初始化View代码的时候及其好用. 2.只能生成有id标签的view的初始化

IOS开发之Bug--使用xib的自动布局和代码中修改遇到的bug

首先,在xib中约束了宽高22,但是需要代码动态重设,所以一开始如下设置,但是实际显示的仍然是22,而不是重设的值: 然后直接拿xib的将布局约束对象拖线重新通过代码重设约束值,虽然打印的结果宽高值是22,但是显示效果是33:

代码手动修改约束(AutoLayout)

当使用xib或storyBoard构建项目,并使用了AutoLayout之后,当需要为视图添加动画,或者手动更改视图的frame的时候,就需要修改约束啦.别以为代码中修改约束很麻烦,其实还蛮简单的啦. 例如: 跟随键盘弹出的ToolBar,原来在视图底部,当键盘弹出时,ToolBar跟随键盘弹出 首先将ToolBar到底部的约束添加一个IBOutlet @property (weak, nonatomic) IBOutlet NSLayoutConstraint *toolViewBottomC

iOS界面布局之三——纯代码的autoLayout及布局动画

iOS界面布局之三--纯代码的autoLayout及布局动画 一.引言 关于界面布局,apple的策略已经趋于成熟,autolayout的优势在开发中也已经展现的淋漓尽致.除了使用storyBoard进行布局约束的拖拽,有时我们也需要在代码中进行autolayout的布局设置,Masonry库可以方便的创建约束属性,实际上,我们也没有必要再使用系统原生的代码来创建和设置约束,这篇博客只作为使用的方法备忘.前几篇布局介绍的链接如下: 使用autoresizing进行界面布局:http://my.o

在代码中使用Autolayout (2) – intrinsicContentSize和Content Hugging Priority

接上文:iOS: 在代码中使用Autolayout (1) – 按比例缩放和优先级. 我们继续来看在代码中使用Autolayout的话题.先说intrinsicContentSize,也就是控件的内置大小.比如UILabel,UIButton等控件,他们都有自己的内置大小.控件的内置大小往往是由控件本身的内容所决定的,比如一个UILabel的文字很长,那么该UILabel的内置大小自然会很长.控件的内置大小可以通过UIView的intrinsicContentSize属性来获取内置大小,也可以通