我正在以编程方式为基于ViewController的iOS应用程序工作。我试图以编程方式这样做,因为我想了解基本概念。
我创建了UIImageView的子类,并使用图像对其进行了初始化。在初始化方法中,我还添加了第二个UIImageView,因为我想以不同的方式处理这两个,但它们是同一个对象的一部分。最终我希望能够根据设备屏幕分辨率缩放对象(以及因此2个UIImages)(例如,如果分辨率低,那么我将两个图像缩放50%)。我想这样做是因为我希望能够实现放大和缩小功能以及支持多种分辨率和屏幕布局。
其他信息:
我的问题是:
我发现很难理解第二张图像的位置。请参阅下面的代码剪辑,这是我使用的:
CGRect innerButtonFrame = CGRectMake(self.center.x/2, self.center.y/2,innerButtonSelectedImage.size.width,innerButtonSelectedImage.size.height);
取自:
-(id) initWithImage:(UIImage *)image
{
if(self = [super initWithImage:image]){
//
self.userInteractionEnabled = true;
// Initialize gesture recognizers
UITapGestureRecognizer *tapInView = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapInImageView:)];
[self addGestureRecognizer:tapInView];
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressInView:)];
[self addGestureRecognizer:longPress];
// Initialize labels
..
// Inner circle image
innerButtonView = [[UIImageView alloc] init];
innerButtonSelectedImage = [UIImage imageNamed:@"inner circle.png"];
CGRect innerButtonFrame = CGRectMake(self.center.x/2, self.center.y/2,innerButtonSelectedImage.size.width,innerButtonSelectedImage.size.height);
innerButtonView.frame = innerButtonFrame;
[innerButtonView setImage:innerButtonSelectedImage];
// Add additional ui components to view
[self addSubview:innerButtonView];
..
[self addSubview:descriptionLabel];
}
return self;
}
编辑:如果我将定位代码更改为以下内容,就会出现这种情况:
CGRect innerButtonFrame = CGRectMake(0, 0,innerButtonSelectedImage.size.width,innerButtonSelectedImage.size.height);
innerButtonView.frame = innerButtonFrame;
我也不明白为什么图像比屏幕大..因为蓝色应该是500x500像素宽,而iPhone 6的屏幕应该是1334 x 750.
答案 0 :(得分:0)
怎么样:
CGRect innerButtonFrame = CGRectMake(0, 0, innerButtonSelectedImage.size.width,innerButtonSelectedImage.size.height);
innerButtonFrame.center = self.center;
答案 1 :(得分:0)
如果您需要500 * 500圈,则添加半圈意味着将 500 * 500 替换为 250 * 250 。小圈子用 175 * 175 取代 350 * 350 并解决您的问题。
我希望你的问题能解决..享受
谢谢..