向下滚动时 ImageView 缩放

2023-11-30

我怎样才能简单地缩放imageView with autolayout当向下滚动时?

尝试查看视差效果,但不完全是我想要的。

我只想用一个scrollView和一个标题ImageView谁可以调整大小取决于scrollView位置。


一步步:

1 - 打开故事板并在顶部添加具有这些约束的图像视图(选择您的宽高比):

enter image description here

2 - 为您的uiimage选择aspectFill模式和clipSubviews

3 - 在 vi​​ewController 顶部添加一个 UIScrollView,其中包含一个子视图。有关使用scrollView自动布局的所有详细信息:http://natashatherobot.com/ios-autolayout-scrollview/

4 - 然后在代码中引用 imageView 和scrollView 的出口。

5 - 在viewDidLoad中,插入 self.automaticallyAdjustsScrollViewInsets = false 并设置scrollView的 contentInsets 和 contentOffset :

class ViewController: UIViewController {

    @IBOutlet weak var scrollView: UIScrollView!
    @IBOutlet weak var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.automaticallyAdjustsScrollViewInsets = false
   }

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()

        let imageHeight = imageView.frame.height

        let newOrigin = CGPoint(x: 0, y: -imageHeight)

        scrollView.contentOffset = newOrigin
        scrollView.contentInset = UIEdgeInsets(top: imageHeight, left: 0, bottom: 0, right: 0)
    }

}

6 - 将scrollviewDelegate添加到ViewController和scrollViewDidScroll方法以获取scrollView的位置

class ViewController: UIViewController, UIScrollViewDelegate

override func viewDidLoad() {
        super.viewDidLoad()

        scrollView.delegate = self
        self.automaticallyAdjustsScrollViewInsets = false
}

func scrollViewDidScroll(scrollView: UIScrollView) {

    let offsetY = scrollView.contentOffset.y

    if offsetY < 0
    {
        imageView.frame.size.height = -offsetY
    }
    else
    {
        imageView.frame.size.height = imageView.frame.height
    }
}

7 - 然后构建并运行。

你可以在github上下载示例:https://github.com/raphrel/scalingImageWhenScrollDown

也许有更好的解决方案,但这个可行。 享受

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向下滚动时 ImageView 缩放 的相关文章

  • Xcode 调试器显示错误的变量值

    我之前问过类似的问题here https stackoverflow com q 53092448 1187415 这个版本有更简单的例子 更新摘要 Xcode 在调试器变量部分中为每个字符串显示 FAIL Swift print 语句显示
  • iOS 在视图中添加/删除阴影

    我不明白如何删除添加到视图中的阴影 我添加到我的视图中initWithFrame这样的阴影 self layer borderWidth 2 self layer borderColor UIColor clearColor CGColor
  • 使用 UIControl (特别是 UIButton)时如何对目标进行排序?

    在我的应用程序中我有多个UIButtons我为此添加了目标 事实证明 首先执行最近添加的目标 然后执行其余的目标 例如 采用以下代码 button addTarget self action selector someAction forC
  • 具有函数的 NSSortDescriptor

    我在使用 NSSortDescriptor 方面的经验有限 它可以通过一键进行排序 而且效果很好 但这是我现在需要的 我有一组数字对 例如 2 3 44 5 6 17 33 7 173 21 我想根据给定函数 myfunction x y
  • 使用仪器分配时 iOS 应用程序冻结

    当我想使用 Instruments Allocation 来分析应用程序的内存使用情况时 它在启动后立即冻结 它总是停留在启动屏幕 这是一个 Xamarin forms 应用程序 这是屏幕截图 其他信息 如果我创建一个新项目 然后使用 In
  • 如何更改 iOS 5 中 UITabBarItem 中文本的颜色

    iOS 5 中有更多外观控制 我们如何更改 UITabBarItem 文本颜色 从默认白色变为其他颜色 编辑 工作解决方案 UITabBarItem appearance setTitleTextAttributes NSDictionar
  • 在 Xamarin 中读取 iOS 的相机权限

    我有一个用 Xamarin 开发的 iOS 应用程序 当应用程序没有访问麦克风的权限时 如果用户尝试从应用程序访问麦克风 我会使用以下命令检查设置AVAudioSession SharedInstance RequestRecordPerm
  • 应用程序关闭时下载报刊亭应用程序

    我正在实现一个报摊杂志应用程序 它通过 Urban Airship 推送通知接收新期刊 只要应用程序位于前台或后台 这就可以正常工作 但据我所知 当应用程序完全关闭时也应该触发下载 但发送推送 content available 1如果我的
  • AUGraph 在 iOS 上是否已被弃用?如果是的话,什么时候?

    我听到过这样的传言AUGraph在 iOS 上已被弃用 例如这篇推特帖子 https twitter com marcoarment status 878323409339338753 marcoarment 您对 atpfm 关于需要重写
  • 如何正确设置UIView的alpha? [iOS]

    I have UIView有很多子视图 UILabel UITextView 等 如果为主视图设置 alpha 0 6 则所有子视图均采用此 alpha 如何单独设置主视图的alpha view setBackgroundColor UIC
  • 有没有相当于 mkmapsnapshotter 的 Google 地图?

    我有一个UITableView其中可能包含大量单元格 并且在某些单元格中我想要一个UIImageView显示一个位置的地图 其坐标仅在运行时已知 我希望表格视图能够平滑滚动 并且我希望单元格中的地图根本不可滚动 我被指示避开苹果地图 除了
  • 单击时未调用 UITableView didSelectRowatIndexPath

    非常非常奇怪 它在任何地方都有效 但在这里 void tableView UITableView aTableView didSelectRowAtIndexPath NSIndexPath indexPath MyViewControll
  • swift 中 pch 的替代品是什么?

    我想知道可以用什么来代替 swift 中的 pch 有没有 pch 的替代方案或方法可以快速摆脱导入 这样我们就不需要对所有类都这样做 我不想一直随身携带 进口 swift 中 pch 的最佳替代品是什么 您无法在 swift 中定义 宏
  • flutter:如果禁用应用程序委托调配,则 UIApplicationDelegate 收到的远程通知需要转发到 FIRAuth

    当我想在 firebase 中使用短信验证时 该应用程序仅在 iOS 上失败 APN 证书已在 firebase 上配置并且FirebaseAppDelegateProxyEnabled是 NOInfo plist 在 verifyPhon
  • searchDisplayController 在 iOS 8 中已弃用

    如何更正以下内容以免出现警告 我缺少什么 修正时searchResultsController to searchController它给了我一个错误 找不到对象 if tableView self searchDisplayControl
  • 如何处理 iPhone 6S Plus 字体大小?

    与其他屏幕尺寸相比 iPhone 6S Plus 的屏幕非常大 我似乎无法找到一种在不以编程方式调整大小的情况下处理标签字体大小的好方法 如何调整标签的字体大小 使其在 iPhone 5 上看起来更小 在 iPhone 6 Plus 上看起
  • Swift 上的 USB 连接委托

    Swift 中是否有一个代表可以让我的班级知道何时通过计算机的 USB 插入新设备 我想知道我的程序何时可以使用新设备 Eric Aya 的答案已经相当不错了 但这里有一个 Swift 3 的改编 我把大部分丑陋的东西包裹在一个USBWat
  • 如何从 UI 测试访问 App Delegate?

    我想访问特定的属性router在 UI 测试期间从启动的应用程序的应用程序委托中获取 但我不知道这是否可行 我努力了 let appDelegate UIApplication sharedApplication delegate as A
  • iOS 低内存崩溃,但内存使用率非常低

    这已经困扰我很长时间了 我的应用程序运行占用大约 2 74MB 内存 没关系 但当它创建 UIWebView 时 它会增加到大约 5 87MB 并继续崩溃 这些是在我的第一代 iPad 上运行时仪器中的实时字节下给出的值 我找不到崩溃日志
  • iOS 上 Safari 中的 shift 键

    有没有办法在javascript中判断手机键盘上是否按下了shift键 并将其与大写锁定 按两次shift键 区分开来 一些事实 首先 让我们看一下有关 iOS 键盘的一些事实 我假设您已经知道了 当您进入键盘模式时 shift键始终处于激

随机推荐