最近做项目时,需要在页面中显示一系列图片,这些图片通过用户点击按钮进行切换,并且可以实现缩放操作。因为这一系列图片大小不一,长宽比各异,因此要居中显示需要结合代码进行动态调整。除了单纯的显示图片外,页面还显示对应的一组注记和文字,注记和文字的位置与图片是配套的,坐标数据存储在sqlite数据库中,并且以图片的左上角为注记零点。这一系列图片因为内容带有不规则的阴影效果(阴影在右下方),因此不是以图片左上脚点缩放图片,或者是通过最终大小反推出缩放系数,都会导致注记位置计算不准确。
首先,使用AutoLayout对UIScrollview和UIImageView布局。UIScrollview和父View相套和,UIImageView定位在UIScrollView中心点,并设置四个方向的距离。
在使用UIImageView加载图片时,将它的contentMode属性选择TopLeft。
将UIImageView四个方向的约束与代码连接,结合代码设置约束的Constraint值,实现UIImageView(图片)的居中。
注意:iOS7以后,默认会给UIScrollView上下留白,需要设置属性去掉白边
self.automaticallyAdjustsScrollViewInsets = false
UIImageView每次更换image前,都组要设置contentMode属性
本例中,出使情况下没有缩放UIImageView中图片和UIScrollView。