我正在尝试使用具有自动布局的新iOS 6 SDK制作非常简单的元素.我有一个ImageView并将其嵌入ScrollView中.(一切都使用Interface Builder构建)..png文件已设置,imageView模式设置为"左上角".
执行:
#import "ImaginariumViewController.h"
@interface ImaginariumViewController ()
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@end
@implementation ImaginariumViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.scrollView.contentSize = self.imageView.image.size;
self.imageView.frame =
CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);
}
@end
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,图像不会滚动.关闭自动布局(使用支柱和弹簧)完成所有操作后,我正在进行滚动操作.我猜问题是限制.请问有人帮帮我吗?
长话短说,我正在尝试构建类似于Photos.app的功能.
我有一个UIScrollView,里面有一个UIImageView,它在Storyboard中设置.缩放工作,但我无法保持中心.在我所有基于框架的滚动视图实现中,我将它集中在如下,它可以很好地工作:
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
CGRect newImageViewFrame = self.imageView.frame;
// Center horizontally
if (newImageViewFrame.size.width < CGRectGetWidth(scrollView.bounds)) {
newImageViewFrame.origin.x = (CGRectGetWidth(scrollView.bounds) - CGRectGetWidth(self.imageView.frame)) / 2;
}
else {
newImageViewFrame.origin.x = 0;
}
// Center vertically
if (newImageViewFrame.size.height < CGRectGetHeight(scrollView.bounds)) {
newImageViewFrame.origin.y = (CGRectGetHeight(scrollView.bounds) - CGRectGetHeight(self.imageView.frame)) / 2;
}
else {
newImageViewFrame.origin.y = 0;
}
self.imageView.frame = newImageViewFrame;
}
Run Code Online (Sandbox Code Playgroud)
但是使用自动布局它根本就没有.
我对UIScrollView或UIImageView没有任何限制,因为我不知道它们应该是什么.我想我应该将UIScrollView粘贴到四个角落,但是对于UIImageView我不完全确定,因为缩放改变了它的框架.
这是一个示例项目:http://cl.ly/21371H3q381N
如何使用自动布局进行缩放工作?
找遍了对多篇UIScrollView
与UIImageView
中,但都没有AutoLayout
信息.我所做的是:地方UIScrollView
在UIViewController
与约束前10名,领先的10,底部50,落后10; 放置UIImageView
在UIScrollView
约束前面0,前面0,下面0,尾随0.我想要的很简单:让我的UIImageView
适合我的UIScrollView
应用程序第一次加载时,让我的UIImageView
水平和垂直居中.现在我可以看到图像并恰好适合屏幕,但图像位于顶部UIScrollView
.(注意:在这种情况下,我的图像宽度在缩放到最小值后zoomScale
等于宽度UIScrollView
,我的图像高度在缩放到最小值zoomScale
小于宽度之后UIScrollView
.)我真的无法将我移动UIImageView
到UIScrollView
垂直中心,无法找到我发生错误的地方.非常感谢.
import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can …
Run Code Online (Sandbox Code Playgroud)