objective-c – 如何在旋转时动态地将UIButton重新定位为UIImage
发布时间:2020-12-14 19:06:57 所属栏目:百科 来源:网络整理
导读:我正在开发一款iPad应用程序,可让您在智能房屋的原型中控制不同的东西.例如,它可以让你打开和关闭灯.为此,我制作了一个UI ImageView,显示了房子的平面图,并添加了UIButtons作为每个可以切换的灯的子视图. 如您所见,使用每个UIButton的setFrame方法将按钮完美
我正在开发一款iPad应用程序,可让您在智能房屋的原型中控制不同的东西.例如,它可以让你打开和关闭灯.为此,我制作了一个UI
ImageView,显示了房子的平面图,并添加了UIButtons作为每个可以切换的灯的子视图.
如您所见,使用每个UIButton的setFrame方法将按钮完美地放置在平面图上.但是,当我将iPad旋转到纵向时,会发生以下情况: 按钮显然仍然具有相同的原点,但它与图像的重新定位无关. 平面图图像具有以下设置的支柱和弹簧: 并将其内容模式设置为Aspect Fit. 我的问题是 如何动态重新定位每个UIButton,使其具有相同的相对位置.我想我必须在{did / should} AutorotateToInterfaceOrientation委托方法中处理这个问题. 应该注意的是UIImageView是可缩放的并且为了解决这个问题,我已经实现了scrollViewDidZoom委托方法,如下所示: for (UIView *button in _floorPlanImage.subviews) { CGRect oldFrame = button.frame; [button.layer setAnchorPoint:CGPointMake(0.5,1)]; button.frame = oldFrame; button.transform = CGAffineTransformMakeScale(1.0/scrollView.zoomScale,1.0/scrollView.zoomScale); } 先感谢您! 解决方法
我发现布局子视图的最佳方法是 – (void)layoutSubviews方法.您必须继承UIImageView并重写该方法.
每当您的帧更改时,此方法将自动被调用,并且在第一次显示视图时也会调用此方法. 如果将所有布局代码放在此方法中,它会阻止布局碎片和重复,将视图代码保留在视图中,并且大多数情况下默认情况下都可以正常工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 基于Flex / Flash的应用程序是否容易受到XSS攻击?这种攻击
- postgresql行号类似oracle rownum效果
- swift – 是否可以通过编程方式禁用commitEditingStyle?
- XML Schema学习札记(2)——简单类型介绍
- Swift - 使用CoreLocation获取设备方向(真实方向,磁极方向
- c# – WCF – 查看对安全Web服务的xml请求/响应
- 正则表达式
- c# – .NET MVC API – get请求中的点(句点)
- 【必应词典转为有道词典导入文件】xml的解析与创建
- c# – ConfigurationManager.ConnectionStrings.Add
推荐文章
站长推荐
- 使用Ruby将字符串转换为日期
- cocos2dx 3.x使用cocostudio编辑的ui设置剪切在a
- ajax – 避免Django的QueryDict列表限制
- 如何将AJAX参数传递给extbase操作?
- ruby-on-rails – Rails memcache存储默认的自动
- c# – 需要内存System.Drawing.Image的MD5哈希
- Powershell:用变量替换正则表达式命名组
- ios – 命令/usr/bin/codesign失败,退出代码1-代
- duplicate symbol _jk_collectionClassLoadTimeI
- ruby – 如何将数组传递给接受带有splat运算符的
热点阅读