pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

具有動態高度的子視圖的自動布局 UIScrollView

Auto layout UIScrollView with subviews with dynamic heights(具有動態高度的子視圖的自動布局 UIScrollView)
本文介紹了具有動態高度的子視圖的自動布局 UIScrollView的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我在使用自動布局約束時遇到了 UIScrollView 的問題.我有以下視圖層次結構,通過 IB 設置約束:

I'm having troubles with UIScrollView using auto layout constraints. I have the following view hierarchy, with constraints set through IB:

- ScrollView (leading, trailing, bottom and top spaces to superview)
-- ContainerView (leading, trailing, bottom and top spaces to superview)
--- ViewA (full width, top of superview)
--- ViewB (full width, below ViewA)
--- Button (full width, below ViewB)

ViewA 和 ViewB 的初始高度為 200 點,但可以通過單擊垂直擴展至 400 點的高度.ViewA 和 ViewB 通過更新它們的高度約束(從 200 到 400)來擴展.這是相應的片段:

The ViewA and ViewB have initial heights of 200 points, but it can be expended vertically to an height of 400 points by clicking on it. ViewA and ViewB are expanded by updating their height constraint (from 200 to 400). Here is the corresponding snippet :

if(self.contentVisible) {
    heightConstraint.constant -= ContentHeight;
    // + additional View's internal constraints update to hide additional content 
    self.contentVisible = NO;
} else {
    heightConstraint.constant += ContentHeight;
    // + additional View's internal constraints update to show additional content
    self.contentVisible = YES;
}

[self.view setNeedsUpdateConstraints];
[UIView animateWithDuration:.25f animations:^{
    [self.view layoutIfNeeded];
}];

我的問題是,如果兩個視圖都展開,我需要能夠滾動才能看到整個內容,而現在滾動不起作用.如何使用約束來更新滾動視圖以反映 ViewA 和 ViewB 高度的變化?

My problem is that if both views are expanded, I need to be able to scroll to see the whole content, and right now the scroll is not working. How can I manage to update the scroll view using constraints to reflect the changes of ViewA and ViewB heights ?

目前我能想到的唯一解決方案是在動畫后手動設置ContainerView的高度,這將是ViewA + ViewB + Button的高度之和.但我相信有更好的解決方案?

The only solution I can think of so far is to manually set the height of the ContainerView after the animation, which will be the sum of the heights of ViewA + ViewB + Button. But I believe there is a better solution?

謝謝

推薦答案

我使用如下純結構

-view
  -scrollView
    -view A
    -view B
    -Button

確保 Button(THE LAST view) 有一個約束(從其底部到父視圖的垂直間距,即滾動視圖),在這種情況下,無論您的視圖 A 和視圖發生什么變化B 是,scrollView 的高度會相應改變.

Make sure Button(THE LAST view) has a constraint(vertical spacing from its bottom to superview, which is the scrollview), in this case, no matter what changes for your view A and view B would be, scrollView's height will be changed accordingly.

我參考了這個很棒的在線圖書網站.

I reference to this great online book site.

只需閱讀創建滾動視圖"部分,您應該會有一個想法.

Just read the "Creating a scroll view" section, you should have an idea.

我在創建詳細視圖時遇到了類似的問題,并且使用具有自動布局的 Interface Builder 非常適合該任務!

I had the similar problem that I was creating a detail view and using Interface Builder with Auto layout is such a good fit for the task!

祝你好運!

(其他資源:

關于滾動視圖的自動布局的堆棧溢出討論.

iOS 6 有一個發行說明 談論對 UIScrollView 的自動布局支持.

iOS 6 has a Release Notes talking about Auto Layout support for UIScrollView.

關于滾動視圖的免費在線iOS 書籍說明.這實際上對我幫助很大!

Free online iOS book explanation about scroll view. This actually helped me a lot!

這篇關于具有動態高度的子視圖的自動布局 UIScrollView的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How to subclass UIScrollView and make the delegate property private(如何繼承 UIScrollView 并使委托屬性私有)
Swift - how to get last taken 3 photos from photo library?(Swift - 如何從照片庫中獲取最后拍攝的 3 張照片?)
Setting contentOffset programmatically triggers scrollViewDidScroll(以編程方式設置 contentOffset 觸發 scrollViewDidScroll)
Photos app-like gap between pages in UIScrollView with pagingEnabled(使用 pagingEnabled 的 UIScrollView 中頁面之間的照片應用程序式間隙)
why UIScrollView is leaving space from top in ios 6 and ios 7(為什么 UIScrollView 在 ios 6 和 ios 7 中從頂部留下空間)
UIScrollView pauses NSTimer while scrolling(UIScrollView 在滾動時暫停 NSTimer)
主站蜘蛛池模板: 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 科箭WMS仓库管理软件-TMS物流管理系统-科箭SaaS云服务 | 滁州高低温冲击试验箱厂家_安徽高低温试验箱价格|安徽希尔伯特 | 合金耐磨锤头_破碎机锤头_郑州市德勤建材有限公司 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 联系我们老街华纳娱乐公司官网19989979996(客服) | 华溶溶出仪-Memmert稳定箱-上海协烁仪器科技有限公司 | 全自动变压器变比组别测试仪-手持式直流电阻测试仪-上海来扬电气 | 橡胶电子拉力机-塑料-微电脑电子拉力试验机厂家-江苏天源 | 临海涌泉蜜桔官网|涌泉蜜桔微商批发代理|涌泉蜜桔供应链|涌泉蜜桔一件代发 | 塑胶跑道_学校塑胶跑道_塑胶球场_运动场材料厂家_中国塑胶跑道十大生产厂家_混合型塑胶跑道_透气型塑胶跑道-广东绿晨体育设施有限公司 | 大行程影像测量仪-探针型影像测量仪-增强型影像测量仪|首丰百科 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 罗氏牛血清白蛋白,罗氏己糖激酶-上海嵘崴达实业有限公司 | 仓储笼_仓储货架_南京货架_仓储货架厂家_南京货架价格低-南京一品仓储设备制造公司 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | 企小优-企业数字化转型服务商_网络推广_网络推广公司 | 升降炉_真空气氛炉_管式电阻炉厂家-山东中辰电炉有限公司 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | 筒瓦厂家-仿古瓦-寺庙-古建琉璃瓦-宜兴市古典园林建筑陶瓷厂有限公司 | 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 志高装潢官网-苏州老房旧房装修改造-二手房装修翻新 | 工装定制/做厂家/公司_工装订做/制价格/费用-北京圣达信工装 | 网站建设-临朐爱采购-抖音运营-山东兆通网络科技 | 千斤顶,液压千斤顶-力良企业,专业的液压千斤顶制造商,shliliang.com | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 不锈钢水管-不锈钢燃气管-卫生级不锈钢管件-不锈钢食品级水管-广东双兴新材料集团有限公司 | 福建珂朗雅装饰材料有限公司「官方网站」| 耐酸泵,耐酸泵厂家-淄博华舜耐腐蚀真空泵 | 深圳宣传片制作_产品视频制作_深圳3D动画制作公司_深圳短视频拍摄-深圳市西典映画传媒有限公司 | 内窥镜-工业内窥镜厂家【上海修远仪器仪表有限公司】 | 油漆辅料厂家_阴阳脚线_艺术漆厂家_内外墙涂料施工_乳胶漆专用防霉腻子粉_轻质粉刷石膏-魔法涂涂 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 智能家居全屋智能系统多少钱一套-小米全套价格、装修方案 | 铝扣板-铝方通-铝格栅-铝条扣板-铝单板幕墙-佳得利吊顶天花厂家 elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 | 电采暖锅炉_超低温空气源热泵_空气源热水器-鑫鲁禹电锅炉空气能热泵厂家 | 百度关键词优化_网站优化_SEO价格 - 云无限好排名 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 沥青车辙成型机-车托式混凝土取芯机-混凝土塑料试模|鑫高仪器 |