iOS中许多图像的属性

时间:2014-10-23 17:30:36

标签: ios objective-c iphone autolayout

我正在创建一个公共汽车座位布局来显示可用的座位,用户可以选择一个座位来预订相同的位置。由于布局在大多数时间都是相同的,我确实希望支持所有的屏幕尺寸。我做了以下事情。

  1. 拖放每个座位的imageViews
  2. 启用自动布局
  3. 添加了许多约束以使座位布局在所有屏幕尺寸中看起来都相同
  4. 项目文件夹中有3张图片。哪些是可用座位,预订座位和一些地方持有人,如司机座位
  5. 为所有imageView创建属性,每当视图加载时,将所有席位变量属性添加到数组中以供参考。
  6. 为所有imageViews添加了点击识别器
  7. 问题是公交车最多可以有42个座位。因此最终在网格类型中创建了42个imageView。和42个属性变量。布局可能会在未来发生变化,所以我想避免许多属性并且害怕崩溃。有没有其他方法可以达到同样的目的? Apple会在app store中接受这个,因为我使用了很多可能少于44px的imagesViews吗?

    以下是我尝试过的不同方式。

    • 动态添加按钮以查看每个席位并根据某些条件进行填充。但我无法以这种方式添加自动布局,因为它完全使用代码而根本不使用故事板。
    • 将按钮拖动到滚动视图中,并为完全使用故事板的座位添加了按钮图像。由于按钮的尺寸小于44px,对于某些占位符和座位我不想要这种方法,因为苹果无论如何都会拒绝这个。

    针对所有屏幕尺寸,从iOS 7到最新的iOS(意味着截至8.1)

2 个答案:

答案 0 :(得分:0)

@rdelmar的建议非常有效。所以给出了未来读者的答案。

  • 对于座位布局,请使用具有自定义单元格和默认流程布局的集合视图。
  • 在我的情况下,我已经使用了4个座位,两个位于过道的两侧。每行使用2个单元格,每个单元格使用两个座位(UIImageViews)
  • 创建了一个NSDicit的NSArray来保存座位号的详细信息,并基于填充集合视图的数组
  • 根据我的需要给出一个空格或对齐单元格(在我的情况下,我需要占位符之间的空间,如驾驶员座位,退出)我使用了集合视图委托。

      
        
    • (CGSize)collectionView:(UICollectionView )collectionView布局:(UICollectionViewLayout )collectionViewLayout   sizeForItemAtIndexPath:(NSIndexPath *)indexPath;
    •   

基于indexPath.row改变单元格之间的高度。

请注意,我们可以通过多种方式实现此布局。我想使用默认布局的集合视图很简单,很容易实现。

答案 1 :(得分:0)

$timesheetHours