相关疑难解决方法(0)

UIScrollView不使用自动布局约束

我有一个滚动视图和背后的图像视图,我用笔尖填充它.我正在使用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 …
Run Code Online (Sandbox Code Playgroud)

constraints objective-c uiscrollview autolayout

76
推荐指数
2
解决办法
8万
查看次数

UIView/CALayer:转换在superview中触发layoutSubviews

当更改UIView的某些属性时,它会layoutSubviewssuperview中触发.我在文档中找不到任何关于此的陈述.

这些属性触发superview和self中的布局

  • 界限

这些属性仅在superview中触发布局

  • 转变
  • layer.transform

这些属性仅触发自我布局

  • 没有

这些属性不会触发任何布局

  • 中央
  • layer.anchorPoint
  • layer.position
  • α

我发现变换触发布局并且位置和anchorPoint没有变得非常混乱.

示例代码:https://github.com/hfossli/LayoutSubviewsInconsistency


我想知道:

  • 为什么我看到这种行为
  • 如果这确实是不一致的,或者我误解了一些核心概念
  • 每次我改变变换时如何避免superview to layoutSubviews

我在文档和头文件中找不到任何相关内容.使用UIDynamics或类似产品时问题很严重.

uiview ios layoutsubviews viewdidlayoutsubviews

26
推荐指数
1
解决办法
3387
查看次数

为什么视图在使用CGAffineTransformMakeRotation旋转时会改变位置

我有以下超级简单的动画,我基本上从它的原始角度/中心旋转视图2弧度,它旋转很好我唯一的误解是为什么视图在旋转发生时从其原始位置移动.

[UIView animateWithDuration:1.0 animations:^{
        self.someView.transform = CGAffineTransformMakeRotation( 2 );
    }];
Run Code Online (Sandbox Code Playgroud)

使用上面的代码旋转时为什么视图会移动?

在此输入图像描述

我目前正在尝试辨别CGAffineTransform参考中的信息.

了解锚固.

我找到了这个帖子,但它没有显示出具体的答案. 为什么旋转imageView,它改变位置?

非常感谢

objective-c rotation ios

18
推荐指数
2
解决办法
8988
查看次数

CGAffine转换并缩放到图像的中心

我开始使用Rory Lewis书中的Absolute BeginnersiPhone和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];
Run Code Online (Sandbox Code Playgroud)

}

所有的动画都是正确编写的,应用程序确实有效,它只是缩小到左上角.为什么默认情况下该点未设置为UIImageView的中心?

编辑: 我发现这是一个由AutoLayout引起的问题.一旦禁用,一切顺利;)

iphone scaling cgaffinetransform ios

9
推荐指数
3
解决办法
2万
查看次数

CATransform3D之后的UITextView:完全滚动出来

所以我有一个UITextView,并在viewDidLoad中我旋转它的图层,使它看起来倾斜回屏幕(有点像星球大战开放爬行).

问题是滚动都搞砸了.向上拖动会滚动一点,然后向后跳或类似; 在模拟器上它甚至会因为包含NaN的坐标的错误而崩溃.

同样,当我尝试自动滚动UITextView时,[UIView animateWithDuration:...]我也会遇到意外的跳过,混蛋等.

我认为这有什么做的事实,我操纵的层,但触控事件以及动画上注册的观点...或者类似的东西?

无论如何,我很难过.

core-animation objective-c uitextview catransform3d ios

9
推荐指数
1
解决办法
184
查看次数

使用自动布局时如何从一个UIView到另一个UIView进行翻转动画?

我总是习惯使用以下代码在一个视图和另一个视图之间制作翻转动画:

        [UIView transitionFromView:firstView
                        toView:secondView
                      duration:0.6
                       options:UIViewAnimationOptionTransitionFlipFromLeft
                    completion:^(BOOL finished) {
                        // finish code here
                    }];
Run Code Online (Sandbox Code Playgroud)

这很好用,给人一种自然的翻转.

但是当我在使用自动布局的故事板上定义的视图上使用它时,事情开始变得混乱 - 视图在此动画之后被调整大小并移动.

有没有办法通过设置约束动画来制作这种翻转动画?

animation flip uikit ios autolayout

8
推荐指数
1
解决办法
4842
查看次数

iOS 6 AutoLayout缩放和翻译动画

我的目标是根据选择使3幅图像沿水平轴收缩,增长和移动.使用自动布局似乎使图像跳跃,因为他们试图实现顶级空间到superview/Bottom空间到superview约束.

所以为了解决这个问题,我把所有的图像都放在了自己的UIView中.UIView设置为图像可以增长的最大尺寸,它以水平轴为中心.所以现在所有的图像都必须保持在相应的UIView中心.这解决了我的问题,因为UIViews执行水平平移,而图像在内部收缩/增长同时保持居中.我的问题是 - 这是正确的方法吗?它似乎很长,就像我可能滥用自动布局的能力.我必须用更多的图像执行类似的任务,所以欢迎任何建议!谢谢.

core-animation autolayout ios6

7
推荐指数
1
解决办法
8205
查看次数

在Autolayout正在播放时使用UIDynamicAnimator进行动画制作

我有一个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() …
Run Code Online (Sandbox Code Playgroud)

ios autolayout uidynamicanimator swift

7
推荐指数
1
解决办法
2051
查看次数

Autolayout旋转车轮

我正在尝试使用CGAffineTransformRotate旋转UIImageView约束,但是视图在旋转时抖动.如果我使用CATransform3DRotate旋转它的图层,则不会发生这种情况,但只要我编辑约束(更改常量),旋转的图像就会跳开.有谁有想法如何解决这个问题?

这是跳过的旋转图像的屏幕截图在此输入图像描述

cgaffinetransform catransform3d ios autolayout

6
推荐指数
2
解决办法
3780
查看次数

iOS8的不同行为:使用view.transform = CGAffineTransformMakeScale(0.5,0.5)的Autolayout,视图未正确定位

我正在使用自动布局,

我想制作一个较小的UISwitch,然后用view.transform = CGAffineTransformMakeScale(0.5, 0.5)它来实现它.

此开关上方还有另一个视图.此开关的前导应与此视图的前沿对齐,并且在视图和开关之间存在固定的垂直空间,如下图所示:

在此输入图像描述 关于iOS7的观点

但是,iOS8上有不同的外观:

在此输入图像描述 关于iOS8的观点

似乎约束不适用于此开关.

但是,我叫self.view.layoutSubviews()self.view.layoutIfNeeded()

它不起作用.

如何让这个开关始终贴在上面视图的右下角?

这里的开关没有按比例缩小

在此输入图像描述

objective-c uiswitch cgaffinetransform autolayout ios8

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