相关疑难解决方法(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万
查看次数

弹出回到UIViewController后,UIScrollView的原点发生了变化

我有一个UIViewController子类作为故事板中的一个场景,其中包含一个UIScrollView包含各种子视图的场景.其中一个子视图是一个UIButton分割成另一个场景UIViewController子类的子视图.当我从视图回来(弹出UIViewController关闭导航控制器堆栈),我发现,滚动视图的起源已经在某种程度上改变了,虽然contentsizecontentoffset似乎是正确的.

有趣的是,该应用程序有一个标签栏,当我离开并返回到该视图时,滚动视图正确设置,偏移量为(0,0).

这个过程基本上没有涉及代码,因为它几乎都在故事板中.由于我对使用故事板相当新,我觉得我做错了什么,虽然我不知道是什么.关于那可能是什么的任何想法?也许是调整问题或限制?

cocoa-touch storyboard uiscrollview ios

57
推荐指数
5
解决办法
4万
查看次数

UIScrollView使用自动布局错误偏移

我有一个相当简单的视图配置:

UIViewController,与孩子UIScrollViewUIImageView在此UIScrollView.我设置的UIImageView高度足以突破可见区域(即更高1024pt),并将Bottom space to superviewmy 的约束设置UIImageView为固定的正值(20例如).

项目布局

整个设置按预期工作,图像在其父级中滚动很好.除非滚动视图(如果滚动到视图底部,效果更明显),然后消失,再次出现(您切换到另一个视图并返回)滚动值将恢复,但内容为滚动视图移动到其父视图的外部顶部.

这不是一个简单的解释,我会尝试绘制它: 前一段的视觉表示

如果你想测试/查看源(或故事板,我没有编辑一行代码).我在我的github上放了一个小小的演示:https://github.com/guillaume-algis/iOSAutoLayoutScrollView

我确实阅读了iOS 6更新日志和关于这个特定主题的解释,并认为这是第二个选项(纯自动布局)的正确实现,但在这种情况下,为什么UIScrollView表现如此不规律?我错过了什么吗?

编辑:这是与#12580434 uiscrollview-autolayout-issue完全相同的问题.答案只是解决方法,因为任何人都找到了解决这个问题的正确方法,或者这是一个iOS错误?

编辑2:我找到了另一种解决方法,它将滚动位置保持在用户离开的相同状态(这是对12580434接受的答案的改进):

@interface GAViewController ()

@property CGPoint tempContentOffset;

@end


@implementation GAViewController

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    self.tempContentOffset = self.mainScrollView.contentOffset;
    self.scrollView.contentOffset = CGPointZero;
}

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    self.scrollView.contentOffset = self.tempContentOffset;
}
Run Code Online (Sandbox Code Playgroud)

这基本上保存了偏移量viewWillAppear,将其重置为原点,然后恢复该值viewDidAppear.问题似乎发生在这两个调用之间,但我无法找到它的起源.

uiscrollview ios autolayout

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

UIScrollView contentOffset在另一个视图推送后更改

我有一个UIViewController在Interface Builder,和我添加UIScrollViewUIView.它具有contentOffset等于0.0 的属性,但是当我滚动UIScrollView到最底部并向另一个视图推送contentOffset更改时.

NSLog 给了我以下值:

//View just loaded
2013-09-09 16:19:27.455 my_app[24588:907] Scroll View content offset is 0.000000

//We came back from another view
2013-09-09 16:19:30.957 my_app[24588:907] Scroll View content offset is 108.000000
Run Code Online (Sandbox Code Playgroud)

这种行为的原因是什么?我刚刚UIScrollView在IB中添加了一个并且根本没有在代码中做任何事情.

contentHeight滚动视图的比我的大self.view.height.在frame滚动视图中保持不变.

cocoa-touch interface-builder uiscrollview uiview ios

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

UIScrollView无法正常还原

我有一个Scrollview,它的属性在viewDidAppear中设置.现在,当我第一次到Scrollview时,没有任何问题.但是我有分配给UINavigationController的按钮.因此当我按下其中一个UINavigationController打开时,当我关闭导航控制器时,ScrollView无法正常恢复.它基本上将屏幕中心对齐为先前按下的按钮位置.因此,如果我尝试向上滚动它不会.

我试过在我的viewDidAppear中使用它:

scrollView.center = CGPointMake(scrollView.contentOffset.x, scrollView.contentOffset.y); 
Run Code Online (Sandbox Code Playgroud)

哪个不太奏效.我怎么解决这个问题?我使用的是iOS6.1

uiscrollview viewdidappear ios

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