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

如何實(shí)現(xiàn)具有 1000 多個(gè)子視圖的 UIScrollView?

How to implement UIScrollView with 1000+ subviews?(如何實(shí)現(xiàn)具有 1000 多個(gè)子視圖的 UIScrollView?)
本文介紹了如何實(shí)現(xiàn)具有 1000 多個(gè)子視圖的 UIScrollView?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問(wèn)題描述

我正在努力編寫(xiě)應(yīng)用程序的一部分,該應(yīng)用程序的行為應(yīng)該類似于原生 iphone 照片應(yīng)用程序.查看了 Orielly 的 iphone sdk 應(yīng)用程序開(kāi)發(fā)書(shū),其中提供了實(shí)現(xiàn)這種所謂的頁(yè)面滑動(dòng)的示例代碼.那里的代碼首先創(chuàng)建了所有子視圖,然后隱藏/取消隱藏它們.在給定時(shí)間,只有 3 個(gè)子視圖可見(jiàn),其余的被隱藏.經(jīng)過(guò)一番努力,我讓它與當(dāng)時(shí)只有大約 15 頁(yè)的應(yīng)用程序一起工作.

I am struggling with writing portion of an app which should behave like the native iphone photo app. Looked at iphone sdk app development book from Orielly which gave an example code for implementing this so-called page-flicking. The code there first created all subviews and then hide/unhide them. At a given time only 3 subviews are visible rest are hidden. After much effort I got it working with app which at that time had only around 15 pages.

當(dāng)我添加 300 頁(yè)時(shí),很明顯這種預(yù)先分配這么多子視圖的方法存在性能/內(nèi)存問(wèn)題.然后我想可能就我的情況而言,我應(yīng)該只分配 3 個(gè)子視圖,而不是隱藏/取消隱藏它們.可能我應(yīng)該在運(yùn)行時(shí)刪除/添加子視圖.但是不知道 UIScrollView 是否可以動(dòng)態(tài)更新內(nèi)容.例如,如 UIScrollView 所理解的,一開(kāi)始有 3 個(gè)幀位于屏幕的不同 x 偏移量(0、320、640).一旦用戶移動(dòng)到第 3 頁(yè),我如何確保我能夠添加第 4 頁(yè)并刪除第 1 頁(yè),但 UIScrollView 不會(huì)混淆?

As soon as I added 300 pages, it became clear that there are performance/memory issues with that approach of pre-allocating so many subviews. Then I thought may be for my case I should just allocate 3 subviews and instead of hide/unhide them. May be I should just remove/add subviews at runtime. But can't figure out whether UIScrollView can dynamically update contents. For example, at the start there are 3 frames at different x-offsets ( 0, 320, 640 ) from the screen as understood by UIScrollView. Once user moves to 3rd page how do I make sure I am able to add 4th page and remove 1st page and yet UIScrollView doesn't get confused ?

希望有針對(duì)此類問(wèn)題的標(biāo)準(zhǔn)解決方案...有人可以指導(dǎo)嗎?

Hoping there is a standard solution to this kind of problem...can someone guide ?

推薦答案

UIScrollView 只是 UIView 的一個(gè)子類,因此可以在運(yùn)行時(shí)添加和刪除子視圖.假設(shè)您有固定寬度的照片(320 像素)并且有 300 張,那么您的主視圖將是 300 * 320 像素寬.創(chuàng)建滾動(dòng)視圖時(shí),將框架初始化為那么寬.

UIScrollView is just a subclass of UIView so it's possible to add and remove subviews at runtime. Assuming you have fixed width photos (320px) and there are 300 of them, then your main view would be 300 * 320 pixels wide. When creating the scroll view, initialize the frame to be that wide.

因此,滾動(dòng)視圖的框架將具有 (0, 0) 到 (96000, 480) 的尺寸.每當(dāng)您添加子視圖時(shí),您都必須更改它的框架,使其適合其父視圖中的正確位置.

So the scroll view's frame would have the dimensions (0, 0) to (96000, 480). Whenever you are adding a subview, you will have to change it's frame so it fits in the correct position in its parent view.

假設(shè)我們將第四張照片添加到滾動(dòng)視圖中.它的幀將從 (960, 480) 到 (1280, 480).如果您可以以某種方式將索引與每張圖片相關(guān)聯(lián),那么這很容易計(jì)算.然后用它來(lái)計(jì)算索引從0開(kāi)始的圖片幀:

So let's say, we are adding the 4th photo to the scroll view. It's frame would be from (960, 480) to (1280, 480). That is easily to calculate, if you can somehow associate an index with each picture. Then use this to calculate the picture's frame where indexes start at 0:

Top-Left -- (320 * (index - 1), 0)

Bottom-Right -- (320 * index, 480)

刪除第一張圖片/子視圖應(yīng)該很容易.保留當(dāng)前屏幕上的 3 個(gè)子視圖的數(shù)組.每當(dāng)你在屏幕上添加一個(gè)新的子視圖時(shí),也要將它添加到這個(gè)數(shù)組的末尾,然后從屏幕上刪除這個(gè)數(shù)組中的第一個(gè)子視圖.

Removing the first picture/subview should be easy. Keep an array of the 3 subviews currently on-screen. Whenever you are adding a new subview to the screen, also add it to the end of this array, and then remove the first subview in this array from the screen too.

這篇關(guān)于如何實(shí)現(xiàn)具有 1000 多個(gè)子視圖的 UIScrollView?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

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

相關(guān)文檔推薦

get index or tag value from imageview tap gesture(從 imageview 點(diǎn)擊手勢(shì)獲取索引或標(biāo)簽值)
UIScrollView not scrolling regardless of large contentSize(無(wú)論內(nèi)容大小如何,UIScrollView 都不會(huì)滾動(dòng))
Clean autorotation transitions in a paging UIScrollView(清除分頁(yè) UIScrollView 中的自動(dòng)旋轉(zhuǎn)轉(zhuǎn)換)
How to create an image from a UIView / UIScrollView(如何從 UIView/UIScrollView 創(chuàng)建圖像)
How to auto scroll UIScrollView using timer?(如何使用計(jì)時(shí)器自動(dòng)滾動(dòng) UIScrollView?)
Programmatically force a UIScrollView to stop scrolling, for sharing a table view with multiple data sources(以編程方式強(qiáng)制 UIScrollView 停止?jié)L動(dòng),以便與多個(gè)數(shù)據(jù)源共享表格視圖) - IT屋-程序員軟件開(kāi)發(fā)技術(shù)分享
主站蜘蛛池模板: 山东限矩型液力偶合器_液力耦合器易熔塞厂家-淄博市汇川源机械厂 | 氟塑料磁力泵-不锈钢离心泵-耐腐蚀化工泵厂家「皖金泵阀」 | 管家婆-管家婆软件-管家婆辉煌-管家婆进销存-管家婆工贸ERP | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 手持气象站_便携式气象站_农业气象站_负氧离子监测站-山东万象环境 | 逗网红-抖音网红-快手网红-各大平台网红物品导航 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | SF6环境监测系统-接地环流在线监测装置-瑟恩实业 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 厦门网站建设_厦门网站设计_小程序开发_网站制作公司【麦格科技】 | 电线电缆厂家|沈阳电缆厂|电线厂|沈阳英联塑力线缆有限公司 | 工业铝型材-铝合金电机壳-铝排-气动执行器-山东永恒能源集团有限公司 | 中宏网-今日新闻-财经新闻| 纸布|钩编布|钩针布|纸草布-莱州佳源工艺纸布厂 | 订做不锈钢_不锈钢定做加工厂_不锈钢非标定制-重庆侨峰金属加工厂 | 紫外线老化试验箱_uv紫外线老化试验箱价格|型号|厂家-正航仪器设备 | 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 小型数控车床-数控车床厂家-双头数控车床 | 引领中高档酒店加盟_含舍·美素酒店品牌官网 | 无菌水质袋-NASCO食品无菌袋-Whirl-Pak无菌采样袋-深圳市慧普德贸易有限公司 | 北京网站建设|北京网站开发|北京网站设计|高端做网站公司 | 家德利门业,家居安全门,别墅大门 - 安徽家德利门业有限公司 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 迪威娱乐|迪威娱乐客服|18183620002 | DAIKIN电磁阀-意大利ATOS电磁阀-上海乾拓贸易有限公司 | 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | 电磁流量计厂家_涡街流量计厂家_热式气体流量计-青天伟业仪器仪表有限公司 | 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 全自动在线分板机_铣刀式在线分板机_曲线分板机_PCB分板机-东莞市亿协自动化设备有限公司 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 鑫铭东办公家具一站式定制采购-深圳办公家具厂家直销 | 浙江筋膜枪-按摩仪厂家-制造商-肩颈按摩仪哪家好-温州市合喜电子科技有限公司 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 密集柜_档案密集柜_智能密集架_密集柜厂家_密集架价格-智英伟业 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 企业VI设计_LOGO设计公司_品牌商标设计_【北京美研】 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 |