在 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 中没有响应的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 7 iOS9 字体不再被识别

Root.plist 中的项目不显示在设置中。 iOS9/Xcode7-beta5

无法将 ios 9.1 设​​备连接到 xcode 7.1

Xcode 7 / iOS 9:在 SKNode 中使用 OpenGL 片段着色器未编译

IOS 9.2 Xcode 7.2 Facebook 登录问题

iOS 9 Xcode 7 - 应用程序在顶部和底部出现黑条