即使 contentSize 大于框架并且在设置内容大小之前添加子视图,scrollView 也不起作用

2023-12-26

    - (void)viewDidLoad
{

[super viewDidLoad];




self.navigationController.navigationBar.translucent = YES;
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"sprites_0001_Rectangle-1.png"]  forBarMetrics:UIBarMetricsDefault];



self.navigationController.navigationBar.translucent = YES;

UIImageView *imageView = [[UIImageView alloc]init];
UIImage *image = [UIImage imageNamed:@"sprites_0000s_0008_1st-Page.png"];
imageView.image = image;


//imageView.translatesAutoresizingMaskIntoConstraints = NO;
imageView.backgroundColor = [UIColor clearColor];
self.view = imageView;



if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) {

     //Write the code to set up view for iPad

   }else{

    UIScrollView *scrollView = [[UIScrollView alloc] init];
    scrollView.backgroundColor = [UIColor clearColor];
    scrollView.translatesAutoresizingMaskIntoConstraints = NO;

    [self.view addSubview:scrollView];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-40-[scrollView(==240)]"
                                                                      options:0
                                                                      metrics:nil
                                                                        views:NSDictionaryOfVariableBindings(scrollView)]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-50-[scrollView(==468)]"
                                                                      options:0
                                                                      metrics:nil
                                                                        views:NSDictionaryOfVariableBindings(scrollView)]];

    UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"ParentsMock.png"]];
    imageView.translatesAutoresizingMaskIntoConstraints = NO;
    [scrollView addSubview:imageView];



    [scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[imageView(==1000)]|"
                                                                       options:0
                                                                       metrics:0
                                                                         views:NSDictionaryOfVariableBindings(imageView)]];
    [scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[imageView(==2000)]|"
                                                                       options:0
                                                                       metrics:0
                                                                         views:NSDictionaryOfVariableBindings(imageView)]];

    }

这是我尝试创建的UIScrollView以编程方式但是我无法做到scrollView即使我设置了工作contentSize将子视图添加到之后scrollView.

正如您在这张图片中看到的,我使用 UINavigationController 来包装 UIViewControllar 并将 UIImageView 设置为其视图。我创建了一个滚动视图并将其添加到视图顶部。然后我创建另一个 imageView1 并将其插入到滚动视图中。

请注意,整个视图控制器的视图是一个imageView,它与我插入scrollView中的imageView不同。


您应该使用约束来直接设置内容大小。它不会滚动,因为您对滚动视图内容的左侧、顶部、右侧或底部没有限制。看我的回答here https://stackoverflow.com/questions/20662842/ios-horizontal-uiscrollbar-with-autolayout/20663090#20663090

Edit:

尝试添加这个:

    imageView.translatesAutoresizingMaskIntoConstraints = NO;
    [scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:
                                                         @"|[imageView(==1000)]|"
                                                        options:0
                                                        metrics:0
                                               views:NSDictionaryOfVariableBindings(imageView)]];
    [scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:
                                                         @"V:|[imageView(==2000)]|"
                                                        options:0
                                                        metrics:0
                                               views:NSDictionaryOfVariableBindings(imageView)]];

并删除您设置内容大小的代码。

Edit:

将整个代码替换为:

        UIScrollView *scrollView = [[UIScrollView alloc] init];
        scrollView.backgroundColor = [UIColor clearColor];
        scrollView.translatesAutoresizingMaskIntoConstraints = NO;

        [self.view addSubview:scrollView];
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-40-[scrollView(==240)]"
                                                                          options:0
                                                                          metrics:nil
                                                                            views:NSDictionaryOfVariableBindings(scrollView)]];
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-50-[scrollView(==468)]"
                                                                          options:0
                                                                          metrics:nil
                                                                            views:NSDictionaryOfVariableBindings(scrollView)]];

        UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"ParentsMock.png"]];
        imageView.translatesAutoresizingMaskIntoConstraints = NO;
        [scrollView addSubview:imageView];



        [scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[imageView(==1000)]|"
                                                                           options:0
                                                                           metrics:0
                                                                             views:NSDictionaryOfVariableBindings(imageView)]];
        [scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[imageView(==2000)]|"
                                                                           options:0
                                                                           metrics:0
                                                                             views:NSDictionaryOfVariableBindings(imageView)]];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

即使 contentSize 大于框架并且在设置内容大小之前添加子视图,scrollView 也不起作用 的相关文章

  • 在 iOS 中发送音频文件和 JSON 字符串

    我正在尝试将音频文件和 JSON 字符串发送到 PHP 服务器 使用以下代码将发送 JSON 但文件到达时为空 如果我将 JSON 块放在音频块下方 文件将完全到达 但 JSON 为空 有什么想法吗 void sendFile NSStri
  • 在 iOS 上构建 WebRtc

    我按照以下说明成功地在 MAC 上构建了 WebRTC http www webrtc org reference getting started http www webrtc org reference getting started
  • ios如何搜索目录

    我想知道如何检查我的应用程序中是否存在目录 例如 如果我想搜索我的应用程序文档中是否存在文件夹 以及如何在其中创建新文件夹 此致 检查文件是否存在 BOOL fileExistsAtAbsolutePath NSString filenam
  • 如何在气隙 Mac 上安装新的 Apple 全球开发者关系中级证书?

    您可能知道也可能不知道 现在使用新的中间证书生成新的签名证书 你可以在这里读到它 https developer apple com support wwdr intermediate certificate https developer
  • 如何使用 Objective-C 解析 JSON?

    我是 iPhone 新手 谁能告诉我解析此数据并获取活动详细信息 名字和姓氏的步骤 error false data activity id 35336 user id 1 user first name Chandra Bhusan us
  • tableView:canEditRowAtIndexPath: 弹出 viewController 时崩溃

    我有一个带有UITableView 我允许通过滑动来编辑 删除 的行 就像在邮件应用程序中一样 我用以下方法来做到这一点 BOOL tableView UITableView tableView canEditRowAtIndexPath
  • 核心数据executeFetchRequest消耗大量内存

    我正在核心数据数据库中插入 cca 100 000 条记录 数据库包含 3 个实体 球员 俱乐部 球员俱乐部 实体之间存在关系 玩家 gt 玩家俱乐部俱乐部 在 PlayerClub 中插入时 我注意到插入大约 50 000 条记录后会消耗
  • Objective c RSA 与 OAEP 填充 sha256 之前的 ios 10

    我正在研究一种在iPhone中使用RSA加密方法的加密方法 到目前为止我可以用这种方法实现获取加密字符串 该字符串被服务器成功解密 SecKeyRef keyRef self addPublicKey pubKey SecKeyAlgori
  • Objective-C 属性和内存管理

    给出以下属性定义 property nonatomic retain MyObject foo 以下代码是否会导致内存泄漏 self foo MyObject alloc init 看起来 alloc 调用将对象上的保留计数增加到 1 然后
  • 尽早检测有问题的 XIB 视图

    我的笔尖名称有一个拼写错误 当我推向导航控制器时 它在代码中被破坏了 弄清楚它并没有花太长时间 但我认为最好尽早断言格式良好 以便更容易弄清楚 问题是它不是零 它只是无法从笔尖正确地形成自己 在 initWithNib 之后是否有更好的断言
  • 如何在禁用状态下更改 UIButton 图像 alpha?

    我有一个带有图像的 UIButton 在其禁用状态下 该图像应具有 0 3 alpha UIButton button UIButton buttonWithType UIButtonTypeCustom UIImage arrowImag
  • 在 XCode 中本地化 HTML 文件

    我有一个本地化的 iOS 应用程序 我希望在其中包含一些本地化的 HTML 文件 我不知道该怎么做 目前 我的文件夹结构如下所示 myapp en lrproj Localizable strings fr lrproj Localizab
  • AST 文件格式错误或损坏

    我有一个问题 我不知道为什么会发生这种情况 但很可能是因为我错误地按了 移动到垃圾箱 到某些系统框架 我收到一条错误消息 AST 文件格式错误或损坏 找不到 AST 文件引用的文件 Users username myProject Quar
  • Swift 字典映射 - 闭包中的 init

    我有 Swift 字典 private var params String AnyObject 这包含查询项目 例如 lat 40 lon 100 我想将这本词典映射到NSURLQueryItem大批 我想让它 迅速 params map
  • 如何在复杂的层次结构中上下同步 CALayer 和 UIView 动画

    See 如何在整个层次结构中管理 CALayer 动画 https stackoverflow com questions 26917908 how to manage calayer animations throughout a hie
  • 块如何捕获其封闭范围之外的变量?

    我知道 Objective C 块可以捕获并设置其封闭范围之外的变量值 它是如何做到的 它实际上相当简单 并在 Clang 的块实现规范中进行了描述 在 导入变量 http clang llvm org docs Block ABI App
  • 如何从 App Store Connect 中删除自动创建的 macOS 应用程序

    I have an iOS app Recently macOS app automatically appeared in App Store Connect 我不打算在 macOS 上发布 iOS 应用程序 我怎样才能摆脱它 我打开了
  • ios swift 如何将默认语言设置为阿拉伯语?

    我正在开发一个有两种语言的应用程序 即英语和阿拉伯语 我用英语编写了该应用程序 然后用阿拉伯语本地化了该应用程序 更改语言时需要重新启动应用程序 我唯一的问题是 第一次安装应用程序时如何将默认语言设置为阿拉伯语 我尝试在编辑方案部分将语言设
  • 初始化Object中的空字符串?

    有人使用以下方法来初始化 NSstring NSString astring NSString alloc init 我想知道为什么不直接使用 NSString atring nil or NSString astring 没有semant
  • 如何在 Swift 中将所有 iOS 设备的标签水平居中

    我不知道如何使标签在图像视图中水平居中 标签说 You ve been here What would you rate us 我想要What would you rate us属于 You ve been here 我试图完成此操作的方法

随机推荐

  • 如何在quarkus microprofile案例中配置rest客户端

    当使用 Quarkus microprofile 作为 REST 客户端时 如何配置底层 HttpClient 比如重试次数 每个主机的连接池大小等等 另外是否可以以某种方式强制客户端重新启动 因此连接池将重新启动 https downlo
  • 转发器内动态控件的视图状态问题

    最近 我在使用要添加动态控件的中继器时遇到了一个问题 虽然我有一个解决方法 在功能上完全符合我想要的功能 但我想知道是否有更好的方法为了我的理解 我使用 ASP NET 已经有大约 6 个月了 每次我认为我已经掌握了页面生命周期 视图状态时
  • 使用expect脚本从远程机器执行ssh

    我是expect脚本的新手 并且有一个用例 在该用例中 我需要从已经使用expect脚本完成ssh的机器上执行ssh 这是我的代码片段 usr bin expect f set timeout 60 spawn ssh email prot
  • 向 Google 地图添加多个标记

    我希望为 Google 地图 v3 API 中列出的每个商家添加标记在本页 http www inside guides co uk brentwood shops and shopping clothes shops html在右上角 我
  • 按列值动态过滤 jTable

    我需要根据特定列中的值动态过滤 JTable 因此 如果我有 2 列 例如 国家 地区 和 首都 我只想按 国家 地区 列进行过滤 我通过实现以下代码找到了问题的部分解决方案 import java awt BorderLayout imp
  • 在 t.string 的预定义值中进行选择

    是否有可能创建一个 collection select or select tag for a t string 用户可以在哪里选择字符串的预定义值 并且只允许将那些值存储在字符串的数据库中 例如 t string relationship
  • 使“gradle javadoc”任务与 Java 9 一起工作

    我有一个使用 source target 1 9 1 9 的多模块 Gradle Java 项目 有两个模块 my base and my dependsOnBase The my base模块没有其他依赖项 module my base
  • Spring 中的 ElasticSearch 与 @Query

    我已经使用 ElasticSearch 的 plugin head 接口成功创建了一个查询 该查询旨在返回特定位置的特定设备的最新时间戳 该查询如下所示 query bool must term deviceevent location i
  • 如何在 Bash 中拆分带引号的字符串?

    很少有问题 https stackoverflow com questions 918886 how do i split a string on a delimiter in bash关于如何通过给定分隔符拆分 Bash 脚本中的字符串有
  • android android.provider.MediaStore.ACTION_VIDEO_CAPTURE 返回 null onActivityResult 与 Nexus 7

    我正在使用意图来录制视频 所以我在 recordVideo 按钮的单击上使用以下代码 Videofilepath Intent intent new Intent android provider MediaStore ACTION VID
  • 在公共存储库中隐藏密钥

    我正在开发一个开源 JavaScript 应用程序 我正在尝试与第三方 API 特别是 github 进行交互 我试图将整个应用程序保留在客户端 所以我真的没有服务器可以回退或存储隐藏文件 作为 OAuth 流程的一部分 我需要提供为我的
  • 时间选择器显示时间为 4:7 而不是 04:07

    我有一个时间选择器功能 可以在 EditText 中设置时间 但它显示的格式不合适 例如 04 07pm 显示为 4 7 当时间中的数字小于 10 时 它会自动删除 0 请帮帮我 我的代码是 if v btnTimePicker1 Proc
  • 选择使用 IIS 的 WCF 服务托管或使用 Windows 服务的自托管

    因为我们想要使用 Asp Net MVC 3 开发一个新产品 这里的关键点是我们通过 WCF Web 服务与数据库对话的所有内容 我们正处于需要决定是在 IIS 中托管 WCF Web 服务还是使用 Windows 服务自托管的阶段 我提出
  • 带有滚动条的文本区域的圆角

    在我的网站上我有一个 htmltextarea框中有大量文本 因此它有一个滚动条 好吧 我想在我的文本区域上有圆角 但是滚动条看起来很糟糕 这是我的 HTML 片段
  • 变量名长度对 C# 性能重要吗?

    我一直想知道在 WinForms C 中使用长描述性变量名称是否对性能有影响 我问这个问题是因为在 AutoIt v3 解释语言 中提出了具有短名称的变量 例如aa代替veryLongVariableName速度要快得多 当程序大于 5 行
  • 弹簧接线,单例与原型

    刚刚阅读了 spring 的内容 当在 spring 中使用 DI 时 如果将 bean 设置为单例 默认 则将 分配 该类的单个实例 而原型每次都会强制创建一个新实例 每次容器分配相同的实例会产生什么后果 这是否意味着会有共享状态 也就是
  • 无法使用 Excel Interop 安排程序

    我用 C NET 开发了一个控制台程序 它使用 Excel Interop 如果我从命令行运行该程序 则该程序在我的开发计算机和 Windows Server 2008 中运行得很好 当我尝试安排任务每天运行时 我收到了这个恼人的互操作错误
  • ARM/neon memcpy 针对*未缓存*内存进行了优化?

    我使用的是基于 Xilinx Zynq 7000 ARM 的 SoC 我正在努力处理 DMA 缓冲区 需要帮助映射 Xilinx ARM SoC Zynq 7000 上的预留 可缓存 DMA 缓冲区 https stackoverflow
  • 通过 using 块使用 Process [重复]

    这个问题在这里已经有答案了 可能的重复 如果我不关闭 C 控制台应用程序中的 System Diagnostics Process 会发生什么情况 https stackoverflow com questions 185314 what
  • 即使 contentSize 大于框架并且在设置内容大小之前添加子视图,scrollView 也不起作用

    void viewDidLoad super viewDidLoad self navigationController navigationBar translucent YES self navigationController nav