我有一个滚动视图和背后的图像视图,我用笔尖填充它.我正在使用autolayout.我有一个底层空间可以看到超级视图,还有一个顶层空间可以在两个视图上进行超视图.图像视图完全符合我的要求.对于iphone 5来说,它就是我想要它的地方.而对于其他iphone,它保持在屏幕底部之上,因此它可以正确调整大小.滚动视图在iphone 5上看起来是正确的,但在其他手机上它没有调整大小,所以它向下滚动到应用程序的视图下方.我在日志中收到这些消息:
 2012-11-21 10:42:38.576 LCHApp[12604:907] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. 
  Try this: (1) look at each constraint and try to figure out which you don't expect;
  (2) find the code that added the unwanted constraint or constraints and fix it.
 (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer
  to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
"<NSLayoutConstraint:0x1d8ea080 UIScrollView:0x1d8413b0.bottom == UIImageView:0x1d892110.bottom>",
"<NSAutoresizingMaskLayoutConstraint:0x1d8cca10 …当更改UIView的某些属性时,它会layoutSubviews在superview中触发.我在文档中找不到任何关于此的陈述.
这些属性触发superview和self中的布局
这些属性仅在superview中触发布局
这些属性仅触发自我布局
这些属性不会触发任何布局
我发现变换触发布局并且位置和anchorPoint没有变得非常混乱.
示例代码:https://github.com/hfossli/LayoutSubviewsInconsistency
我想知道:
我在文档和头文件中找不到任何相关内容.使用UIDynamics或类似产品时问题很严重.
我有以下超级简单的动画,我基本上从它的原始角度/中心旋转视图2弧度,它旋转很好我唯一的误解是为什么视图在旋转发生时从其原始位置移动.
[UIView animateWithDuration:1.0 animations:^{
        self.someView.transform = CGAffineTransformMakeRotation( 2 );
    }];
使用上面的代码旋转时为什么视图会移动?

我目前正在尝试辨别CGAffineTransform参考中的信息.
了解锚固点.
我找到了这个帖子,但它没有显示出具体的答案. 为什么旋转imageView,它改变位置?
非常感谢
我开始使用Rory Lewis书中的Absolute Beginners的iPhone和iPad应用程序开始研究objective-c,但是我被困在第5章.
我想制作一个缩小图像的按钮.
我的问题是,在我写完所有代码后,图像缩小到UIImageView(左上角)的点(0,0),而在视频中,图像缩小到其中心.我做了一些研究,发现CGAffineTransform使用对象的中心进行翻译,旋转等.
那为什么它在我的情况下不起作用?
我有最新的Xcode版本并没有做任何奇怪的事情.我希望我已经清楚了.对不起我的英语不好.
编辑 对不起代码,但我从手机上写了这个问题.无论如何,有罪的部分都是这样的
- (IBAction)shrink:(id)sender {
if(hasShrink == NO){
    [shrinkButton setTitle:@"Grow" forState:UIControlStateNormal];
}
else if(hasShrink == YES){
    [shrinkButton setTitle:@"Shrink" forState:UIControlStateNormal];
}
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1.0];
        myIcon.transform = CGAffineTransformMakeScale(.25, .25);
        hasShrink = YES;
        [UIView commitAnimations];
}
所有的动画都是正确编写的,应用程序确实有效,它只是缩小到左上角.为什么默认情况下该点未设置为UIImageView的中心?
编辑: 我发现这是一个由AutoLayout引起的问题.一旦禁用,一切顺利;)
所以我有一个UITextView,并在viewDidLoad中我旋转它的图层,使它看起来倾斜回屏幕(有点像星球大战开放爬行).
问题是滚动都搞砸了.向上拖动会滚动一点,然后向后跳或类似; 在模拟器上它甚至会因为包含NaN的坐标的错误而崩溃.
同样,当我尝试自动滚动UITextView时,[UIView animateWithDuration:...]我也会遇到意外的跳过,混蛋等.
我认为这有什么做的事实,我操纵的层,但触控事件以及动画上注册的观点...或者类似的东西?
无论如何,我很难过.
我总是习惯使用以下代码在一个视图和另一个视图之间制作翻转动画:
        [UIView transitionFromView:firstView
                        toView:secondView
                      duration:0.6
                       options:UIViewAnimationOptionTransitionFlipFromLeft
                    completion:^(BOOL finished) {
                        // finish code here
                    }];
这很好用,给人一种自然的翻转.
但是当我在使用自动布局的故事板上定义的视图上使用它时,事情开始变得混乱 - 视图在此动画之后被调整大小并移动.
有没有办法通过设置约束动画来制作这种翻转动画?
我的目标是根据选择使3幅图像沿水平轴收缩,增长和移动.使用自动布局似乎使图像跳跃,因为他们试图实现顶级空间到superview/Bottom空间到superview约束.
所以为了解决这个问题,我把所有的图像都放在了自己的UIView中.UIView设置为图像可以增长的最大尺寸,它以水平轴为中心.所以现在所有的图像都必须保持在相应的UIView中心.这解决了我的问题,因为UIViews执行水平平移,而图像在内部收缩/增长同时保持居中.我的问题是 - 这是正确的方法吗?它似乎很长,就像我可能滥用自动布局的能力.我必须用更多的图像执行类似的任务,所以欢迎任何建议!谢谢.
我有一个ViewController已经在InterfaceBuilder中配置为使用AutoLayout的所有子视图.布局工作正常.
我想使用UIDynamicAnimator提供的酷重力效果使其中一个子视图反弹.我认为这不适用于AutoLayout,但我尝试了它确实如此.它运作得很好!
我的问题是,这是预期的行为吗?是否会在某处造成问题?Apple是否提供有关组合AutoLayout和UIDynamicAnimators的任何指导?
这是代码,对任何感兴趣的人:
    var boundaryFrame = self.buttonBackgroundView.frame
    boundaryFrame = CGRect(x: 0,
        y: boundaryFrame.origin.y + (boundaryFrame.height + 1),
        width: self.view.frame.width,
        height: 2)
    self.animator = UIDynamicAnimator(referenceView: self.view)
    var gravity = UIGravityBehavior(items: [self.buttonBackgroundView])
    gravity.magnitude = 0.5
    var collision = UICollisionBehavior(items: [self.buttonBackgroundView])
    var boundaryId: NSMutableString = NSMutableString(string: "bottomBoundary")
    let boundaryPath = UIBezierPath(rect: boundaryFrame)
    collision.addBoundaryWithIdentifier(boundaryId, forPath: boundaryPath)
    let bounceProperties = UIDynamicItemBehavior(items: [self.buttonBackgroundView])
    bounceProperties.elasticity = 0.5
    // Move it up before causing it to bounce down to its original location
    self.setMeUpTopConstraint.constant = 10
    self.view.setNeedsUpdateConstraints() …我正在尝试使用CGAffineTransformRotate旋转UIImageView约束,但是视图在旋转时抖动.如果我使用CATransform3DRotate旋转它的图层,则不会发生这种情况,但只要我编辑约束(更改常量),旋转的图像就会跳开.有谁有想法如何解决这个问题?
这是跳过的旋转图像的屏幕截图
我正在使用自动布局,
我想制作一个较小的UISwitch,然后用view.transform = CGAffineTransformMakeScale(0.5, 0.5)它来实现它.
此开关上方还有另一个视图.此开关的前导应与此视图的前沿对齐,并且在视图和开关之间存在固定的垂直空间,如下图所示:
 关于iOS7的观点
 关于iOS7的观点
但是,iOS8上有不同的外观:
 关于iOS8的观点
 关于iOS8的观点
似乎约束不适用于此开关.
但是,我叫self.view.layoutSubviews()和 
        self.view.layoutIfNeeded()
它不起作用.
如何让这个开关始终贴在上面视图的右下角?
这里的开关没有按比例缩小

ios ×7
autolayout ×6
objective-c ×4
animation ×1
constraints ×1
flip ×1
ios6 ×1
ios8 ×1
iphone ×1
rotation ×1
scaling ×1
swift ×1
uikit ×1
uiscrollview ×1
uiswitch ×1
uitextview ×1
uiview ×1