[英]Where to add UIPinchgesture on UIImageView which scale or on UIView in which UIImageView contain?
[英]Add a UIImageView to a UIView
我已經堅持了一段時間,因此任何幫助將不勝感激。
我基本上已經做了一個名為shape的類,它是一個UIView
,我想向該UIView
添加一個UIImageView
。
這是我的.h文件:
@interface Shape : UIView {
int blockWidth;
int blockHeight;
NSString *colour;
IBOutlet UIImageView *blockView;
}
@property (nonatomic, retain) IBOutlet UIImageView *blockView;
@property (nonatomic, retain) NSString *colour;
-(void)setColour:(NSString *)colour;
-(void)createShape:(int)blocksX :(int)blocksY;
@end
這是我的.m文件:
@implementation Shape
@synthesize blockView;
@synthesize colour;
- (void)setColour:(NSString *)colour{
NSLog(@"Colour: %@", colour);
}
-(void)createShape:(int)blocksX :(int)blocksY{
self.frame = CGRectMake(0, 0, 200, 200);
blockView.frame = CGRectMake(0, 0, 100, 100);
self.backgroundColor = [UIColor greenColor];
blockView.backgroundColor = [UIColor redColor];
[self addSubview:blockView];
}
- (void)dealloc {
[blockView release];
[colour release];
[super dealloc];
}
@end
非常感謝!
再次對不起,如果這令人困惑,但是我正在嘗試將此c鋒利的代碼移植到目標中,上面的代碼是我的第一次嘗試,顯然不需要完成,但是您可以希望看到我正在嘗試的內容,對不起,我完全C的新增功能,它與我習慣於:S的其他語言完全不同
public class Shape : UIView
{
public UIImageView blockView;
private int blockWidth = 40;
private int blockHeight = 40;
public Shape (int startX, int startY ,string colour, int blocksX, int blocksY)
{
Console.WriteLine("Colour: "+colour+" Blocks: "+blocksX+" "+blocksY);
this.Frame = new RectangleF(startX,startY,blockWidth*blocksX,blockHeight*blocksY);
this.UserInteractionEnabled = true;
for(int i = 0; i<blocksX; i++)
{
for(int j = 0; j<blocksY; j++)
{
blockView = new UIImageView(UIImage.FromFile("Images/Blocks/"+colour+"block.jpg"));
blockView.Frame = new RectangleF(blockWidth*i,blockHeight*j,blockWidth,blockHeight);
Console.WriteLine("I: "+i+" J: "+j);
this.AddSubview(blockView);
}
}
}
(已刪除的舊文本)
實際上,您在C#代碼中所做的與在Objective-C中沒有什么不同(此代碼未經測試!):
在頭文件中:
#import <UIKit/UIKit.h>
@interface ShapeView : UIView {
}
@end
實施文件:
#import "ShapeView.h"
#define kBlockWidth 40
#define kBlockHeight 40
@implementation ShapeView
- (id)initWithStartX:(int)startX startY:(int)startY colour:(NSString*)colour blocksX:(int)blocksX blocksY:(int)blocksY
{
CGRect frame = CGRectMake(startX, startY, kBlockWidth * blocksX, kBlockHeight * blocksY);
if ((self = [super initWithFrame:frame]) != nil)
{
for (int i = 0; i < blocksX; i++)
{
for (int j = 0; j < blocksY; j++)
{
UIImage* image = [UIImage imageNamed:[NSString stringWithFormat:@"Images/Blocks/%@block.jpg", colour]];
UIImageView* blockView = [[UIImageView alloc] initWithImage:image];
blockView.frame = CGRectMake(kBlockWidth * i,
kBlockHeight * j,
kBlockWidth,
kBlockHeight);
[self addSubview:blockView];
[blockView release];
}
}
}
return self;
}
@end
此實現只是將UIImageViews添加為子視圖。 請注意, blockView
是分配和配置的,然后添加為self
的子視圖。 調用-addSubview:
保留新的子視圖並將其實際添加到視圖層次結構中。 因此, blockView
被釋放。 釋放整個ShapeView
對象時,UIView的-dealloc
實現負責刪除和釋放子視圖。
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.