在 Xcode 7 ios9 中正常时,UIScrollView 在 xcode8、ios10 中没有响应
Posted
技术标签:
【中文标题】在 Xcode 7 ios9 中正常时,UIScrollView 在 xcode8、ios10 中没有响应【英文标题】:UIScrollView not responding in xcode8, ios10 when it was OK in Xcode 7 ios9 【发布时间】:2016-09-20 13:49:54 【问题描述】:在我的应用程序中,我有一个 UIViewController,它由以下元素组成:
顶部有两个按钮和一个 UILabel
包含不同元素、UILabels、按钮等的 UISCrollView。
我附上一张截图让你了解结构。
使用 ios 9 SDK 在 Xcode 7 中编译时,一切正常。但是现在我正在尝试更新应用程序以使其在 iOS 10 中运行,并且在尝试滚动时屏幕没有响应。 UIScrollView 外的两个按钮仍然可以正常工作。
在 iPhone 上运行时收到的唯一警告是: [LayoutConstraints] 无法同时满足约束。 以下列表中的至少一个约束可能是您不想要的。 试试这个: (1)查看每个约束并尝试找出您不期望的; (2) 找到添加了一个或多个不需要的约束的代码并修复它。 ( "", “” )
IB 还告诉我约束存在错误(红色指示符)。它告诉 ScrollVertical (UISCrollView) 需要约束:Y 位置或高度。但我很确定这条消息在 xcode7-ios9 中显示,当一切正常时。
知道发生了什么吗?任何想法都会受到赞赏,因为我已经为此苦苦挣扎了一天。
这是扩展的约束:
非常感谢
【问题讨论】:
【参考方案1】:也许您应该在视图层次结构中扩展 Constraints
节点,并捕获您在 Xcode 中定义的约束,并将其粘贴到此处。这将有助于问题跟踪。
【讨论】:
好的,我已经包含了约束。【参考方案2】:这里有同样的问题,但有一个转折。在第一次启动子屏幕滚动将不起作用。旋转设备后,它工作正常。如果它从纵向或横向方向开始,则没有区别。旋转应用程序后工作正常。 IOS9和IOS8都没有问题。
#import <QuartzCore/QuartzCore.h>
#import "ApDetailTableViewController.h"
#import "ApMailViewController.h"
#import "ApApplicatieData.h"
#import "ztatz_constants.h"
#import "ztatz_macro.h"
@interface ApDetailTableViewController ()
@property (weak, nonatomic) IBOutlet UIView *contentUIView;
@property (weak, nonatomic) IBOutlet UIScrollView *apUIScrolView;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *contentViewHeightConstraint;
@property (weak, nonatomic) IBOutlet UIView *lastSeperatorView;
@property (weak, nonatomic) IBOutlet UILabel *applicatienaam;
@property (weak, nonatomic) IBOutlet UILabel *san;
@property (weak, nonatomic) IBOutlet UILabel *beschrijving;
@property (weak, nonatomic) IBOutlet UILabel *status;
@property (weak, nonatomic) IBOutlet UILabel *updatetime;
@property (weak, nonatomic) IBOutlet UILabel *afdelingsnaam;
@property (weak, nonatomic) IBOutlet UILabel *contactpersoon;
@property (weak, nonatomic) IBOutlet UILabel *email;
@property (weak, nonatomic) IBOutlet UILabel *controledatum;
@end
@implementation ApDetailTableViewController
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view.
self.applicatienaam.text = self.apDataForDetails.applicatienaam;
self.san.text = self.apDataForDetails.san;
self.beschrijving.text = self.apDataForDetails.beschrijving;
self.status.text = self.apDataForDetails.status;
self.updatetime.text = self.apDataForDetails.updatetime;
self.afdelingsnaam.text = self.apDataForDetails.afdelingsnaam;
self.contactpersoon.text=self.apDataForDetails.contactpersoon;
self.email.text=self.apDataForDetails.email;
self.controledatum.text=self.apDataForDetails.controledatum;
// start a top of scroll view
self.automaticallyAdjustsScrollViewInsets = NO;
-(void) viewDidLayoutSubviews
[super viewDidLayoutSubviews];
// limit the slack space at the end of the scroll view.
DLog(@"y = %f\n", self.lastSeperatorView.frame.origin.y);
self.contentViewHeightConstraint.constant = self.lastSeperatorView.frame.origin.y+4;
@end
【讨论】:
以上是关于在 Xcode 7 ios9 中正常时,UIScrollView 在 xcode8、ios10 中没有响应的主要内容,如果未能解决你的问题,请参考以下文章
Root.plist 中的项目不显示在设置中。 iOS9/Xcode7-beta5
Xcode 7 / iOS 9:在 SKNode 中使用 OpenGL 片段着色器未编译