Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 创建缩略图库的最佳方法_Objective C_Ios_Xcode_Memory Management_Image Gallery - Fatal编程技术网

Objective c 创建缩略图库的最佳方法

Objective c 创建缩略图库的最佳方法,objective-c,ios,xcode,memory-management,image-gallery,Objective C,Ios,Xcode,Memory Management,Image Gallery,我正在创建一个显示图像对象缩略图的应用程序。(该应用程序仅在iPad上) 每个图像对象都显示以下信息: 图像名称 照片的价格 喜爱的图标 用于选择图像的按钮(图像实际上是一个按钮,按钮的背景就是图像)。图像是从URL加载的 我曾经这样画过: 创建了包含图像、按钮、收藏夹图标和价格标签的自定义视图 加载容器视图时,我将所有这些视图绘制成一个循环 所有视图都被绘制到UIScrollView中 当视图最初加载到纵向视图时,这一切都很好 当设备从纵向切换到横向时,我试图确定布局所有视图的最佳方式 我想到

我正在创建一个显示图像对象缩略图的应用程序。(该应用程序仅在iPad上)

每个图像对象都显示以下信息:

  • 图像名称

  • 照片的价格

  • 喜爱的图标

  • 用于选择图像的按钮(图像实际上是一个按钮,按钮的背景就是图像)。图像是从URL加载的

  • 我曾经这样画过:

  • 创建了包含图像、按钮、收藏夹图标和价格标签的自定义视图

  • 加载容器视图时,我将所有这些视图绘制成一个循环

  • 所有视图都被绘制到UIScrollView中

  • 当视图最初加载到纵向视图时,这一切都很好

    当设备从纵向切换到横向时,我试图确定布局所有视图的最佳方式

    我想到的处理方法如下:

  • 切换设备时,完全擦除视图并重新加载所有内容
  • 加载视图时,将其添加到保留数组中。旋转设备时,在阵列中循环并更改每个视图的帧
  • 在每个视图中,都有两个属性。一种用于保存肖像和风景的框架的属性。旋转设备时,调用reloadInputViews/ViewNeedsLayout/setNeedsLayout 我的担忧:

  • 这会很慢

  • 将所有这些对象添加到一个数组将很难使用内存

  • 调用ViewNeedsLayout/setNeedsLayout/reloadInputViews时,如果对象未存储在数组中,是否会丢失这些对象

  • -一如既往,非常感谢您的帮助和宝贵时间

    我过去用过,发现它非常灵活,反应灵敏。它与UITableView使用相同的机制,非常有效。我只是出于自己的目的编辑了单元格绘制方法

    您的担心是完全正确的-如果视图在屏幕外,那么在内存不足的情况下,这会很慢并且容易出现错误。幸运的是,KKGridView为您解决了这些问题。

    我过去曾使用过它,并发现它非常灵活且响应迅速。它与UITableView使用相同的机制,非常有效。我只是出于自己的目的编辑了单元格绘制方法


    您的担心是完全正确的-如果视图在屏幕外,那么在内存不足的情况下,这会很慢并且容易出现错误。幸运的是,KKGridView为您解决了这些问题。

    我将查看它。感谢您的回复。如果一切顺利,请不要忘记接受答案:)如果您对该框架也有问题,请随时向我提问。它可以工作,但不能解决我的问题。谢谢你的帮助,我会查一查的。感谢您的回复。如果一切顺利,请不要忘记接受答案:)如果您对该框架也有问题,请随时向我提问。它可以工作,但不能解决我的问题。谢谢你的帮助。