【问题标题】:How restrict a subview(which is a UIImageView) totally in its superview?如何在其父视图中完全限制子视图(这是一个 UIImageView)?
【发布时间】:2014-04-26 13:25:55
【问题描述】:

我想在滚动视图中显示照片。因为我想向用户显示整张照片,然后允许用户捏合照片来放大和缩小。因此,首先我将 contentsize 设置为固定大小(例如 (320, 568))。但是,当我添加一个 UIImageView 作为滚动视图的子视图时,如果 UIImageView 的图像大小大于滚动视图的内容大小,则只会显示图像的上半部分和左半部分。所以我想知道如何限制滚动视图中的图像视图并设置图像显示良好(如大多数应用程序中的照片)。我知道一种方法:clipsToBounds,并且我使用它。但它不起作用。谁能帮我?这是我的简单代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.photoScrollView.contentSize = CGSizeMake(320, 568);
    self.photoScrollView.clipsToBounds = YES;

    UIImage *image = [UIImage imageNamed:@"image"];
    UIImageView *iv = [[UIImageView alloc] initWithImage:image];

    [self.photoScrollView addSubview:iv];

    [iv sizeToFit];
    iv.contentMode = UIViewContentModeScaleAspectFit;

}

提前致谢!

【问题讨论】:

标签: ios objective-c uiscrollview uiimageview uiimage


【解决方案1】:
    - (void)viewDidLoad
    {
        [super viewDidLoad];

        self.photoScrollView.contentSize = CGSizeMake(320, 568);
        self.photoScrollView.clipsToBounds = YES;

        self.photoScrollView.maximumZoomScale = 3.0;
        self.photoScrollView.minimumZoomScale = 1.0;

        UIImage *image = [UIImage imageNamed:@"image"];
        UIImageView *iv = [[UIImageView alloc] initWithImage:image];

        [self.photoScrollView addSubview:iv];


        iv.contentMode = UIViewContentModeScaleAspectFit;
        iv.frame=CGRectMake(0, 0, 320, 568); // update this line
// Declare UIImageView* imgView property then assign self.imgView=iv;

    }

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
{
    return self.imgView;
}

【讨论】:

  • 谢谢。有用。你能告诉我更多关于如何放大和缩小的信息吗?我知道我应该添加委托方法:viewForZoomingInScrollView。我想知道是否应该在代码中重置滚动视图的内容大小?或者当夹点发生时内容大小会自动重置?
  • 检查我更新的答案,我添加了缩放比例和 UIScrollView 委托方法
  • @Reggie 很高兴为您提供帮助,您能给我的答案投票吗?
  • 对不起,我想投票给你的答案。但是因为我是stackoverflow的新手,我只有3个声望,而投票至少需要15个声望。所以我没有投票权,我唯一能做的就是接受你的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-28
  • 1970-01-01
相关资源
最近更新 更多