目标C:以编程方式创建UIImageView

Chr*_*ris 4 objective-c button uiimageview

我正在尝试在点击按钮时在按钮位置加载.png加载UIImageView.

brickAnim = UIImageView.alloc;           ///////freezes during runtime
[brickAnim initWithFrame:currentBrick.frame];
[brickAnim setImage:[NSString stringWithFormat:@"brick-1.png"]];
[self.view addSubview:brickAnim];
Run Code Online (Sandbox Code Playgroud)

current brick是被单击的按钮的名称.我把它缩小了,并发现第一行导致应用程序冻结并退出.我无法弄清楚我做错了什么.

Jes*_*her 13

尝试

brickAnim = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"brick-1.png"]];
brickAnim.frame = currentBrick.frame;
[self.view addSubview:brickAnim];
Run Code Online (Sandbox Code Playgroud)

看到对其他答案的回复后编辑:

你在其他地方宣布并初始化brickAnim吗?如果没有,你需要在开头添加:

UIImageView *brickAnim = [[UIImageView alloc] ....;
Run Code Online (Sandbox Code Playgroud)

最后:

[brickAnim release];
Run Code Online (Sandbox Code Playgroud)


小智 8

您需要首先创建一个UIImage,因为setImage需要一个UIImage对象.这样的东西可能有用(注意这是一个类方法):

[brickAnim setImage:[UIImage imageNamed:@"brick-1.png"]];
Run Code Online (Sandbox Code Playgroud)

看看UIImage参考,我不确定这是否可行(因为imageNamed可能需要不同的路径格式).