您好,匿名用户
随意问技术百科期待您的加入

UIImageView控件怎么让超出控件范围的图像信息隐藏

0 投票

为什么在storyboard里面都是隐藏的,但是编译之后还是显示出来了?
UIImageView能用来做sprite吗?

用户头像 提问 2012年 12月1日 @ Caster 上等兵 (256 威望)
分享到:

1个回答

0 投票
 
最佳答案

imageView.clipsToBounds = YES;

have a try

想修改图片于View的相对坐标,可以增加一个CALayer用于存放图片,或者索性将一个UIImageView *a作为另一个UIView *b的subview,然后调整a的frame。
下面代码示范了如何使用CAlayer做到修改图片坐标
此类继承自UIView,setImageFrame方法可以修改图片相对于View的坐标或大小等。

//
//  OTImageView.m
//  ClipDemo
//
//  Created by openthread on 5/31/12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#import "OTImageView.h"
#import <QuartzCore/QuartzCore.h>

@implementation OTImageView
{
    CALayer *_imageLayer;
}

#pragma mark - Image Methods

- (UIImage *)image
{
    CGImageRef imageRef = (__bridge CGImageRef)_imageLayer.contents;
    UIImage *image = [UIImage imageWithCGImage:imageRef];
    return image;
}

- (void)setImage:(UIImage *)image
{
    CGImageRef imageRef = image.CGImage;
    _imageLayer.contents = (__bridge id)imageRef;
}

#pragma mark - Frame Methods

- (void)setImageFrame:(CGRect)imageFrame
{
    _imageLayer.frame = imageFrame;
}

#pragma mark Life Cycle

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        _imageLayer = [CALayer layer];
        _imageLayer.backgroundColor = [UIColor blueColor].CGColor;
        _imageLayer.frame = CGRectMake(0, 0, frame.size.width, frame.size.height);
        [self.layer addSublayer:_imageLayer];
    }
    return self;
}


@end
用户头像 回复 2012年 12月1日 @ Blitzcrank 上等兵 (358 威望)
选中 2012年 12月1日 @Caster
提一个问题:

相关问题

0 投票
1 回复 41 阅读
0 投票
1 回复 36 阅读
0 投票
1 回复 3 阅读
用户头像 提问 2014年 6月2日 @ Lady 上等兵 (162 威望)
0 投票
1 回复 42 阅读
用户头像 提问 2012年 12月1日 @ Apollo 上等兵 (269 威望)
0 投票
1 回复 41 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...