如何在 运行 时间制作一个矩形以适应其中拖动的单词标签 objective c
how to make a rectangle at run time to fit a dragged label of words in it objective c
我正在 iOS 中制作一个单词匹配应用程序,其中我有两个部分的单词字符串,我想从两个随机单词标签中生成一个完整的单词,这样就可以了。
现在我想在 运行 时间制作一个矩形作为可拖动标签的目标,当我点击标签拖动它时,矩形应该变成高亮的,大小与标签的大小相同单词。
我如何在 objective-C
中实现这一点?
为了更清晰,您可以在图像中看到我想在 运行 时间制作这个绿色矩形以将右侧标签放入其中
左侧标签不可移动,应该始终在矩形中,正如您在给定 image.The 代码中看到的那样,到目前为止,我尝试将矩形设为 viewDidLoad
中的 UIView
作为
for(int i = 0; i <5;i++){
customView = [[UIView alloc]initWithFrame:CGRectMake(10,y,50, 30)];
customView.backgroundColor = [UIColor greenColor];
[gameLayer addSubview:customView];
y = y+40;
}
但这不是我真正想要的。任何帮助表示赞赏...
最后我得到的矩形大小与点击标签的大小相同,我在 .h 文件中创建了一个数组,其中包含我的目标矩形的引用 NSMutableArray *rectangleLabels
之后我使用点击手势循环方法使矩形的大小与我的可拖动标签的大小相同并且它工作正常...
-(void)gotTapped:(Id)sender {
for (UIView *v in rectangleLabels) {
v.hidden = !v.hidden;
UILabel *tapLbl = (UILabel *)[sender view];
CGRect rect = tapLbl.frame;
for(int i=0;i<rectangleLabels.count;i++) {
UILabel *lblChange = (UILabel *)[rectangleLabels objectAtIndex:i];
lblChange.frame = CGRectMake(lblChange.frame.origin.x, lblChange.frame.origin.y, rect.size.width, rect.size.height);
}
}
}
我正在 iOS 中制作一个单词匹配应用程序,其中我有两个部分的单词字符串,我想从两个随机单词标签中生成一个完整的单词,这样就可以了。
现在我想在 运行 时间制作一个矩形作为可拖动标签的目标,当我点击标签拖动它时,矩形应该变成高亮的,大小与标签的大小相同单词。
我如何在 objective-C
中实现这一点?
为了更清晰,您可以在图像中看到我想在 运行 时间制作这个绿色矩形以将右侧标签放入其中
左侧标签不可移动,应该始终在矩形中,正如您在给定 image.The 代码中看到的那样,到目前为止,我尝试将矩形设为 viewDidLoad
中的 UIView
作为
for(int i = 0; i <5;i++){
customView = [[UIView alloc]initWithFrame:CGRectMake(10,y,50, 30)];
customView.backgroundColor = [UIColor greenColor];
[gameLayer addSubview:customView];
y = y+40;
}
但这不是我真正想要的。任何帮助表示赞赏...
最后我得到的矩形大小与点击标签的大小相同,我在 .h 文件中创建了一个数组,其中包含我的目标矩形的引用 NSMutableArray *rectangleLabels
之后我使用点击手势循环方法使矩形的大小与我的可拖动标签的大小相同并且它工作正常...
-(void)gotTapped:(Id)sender {
for (UIView *v in rectangleLabels) {
v.hidden = !v.hidden;
UILabel *tapLbl = (UILabel *)[sender view];
CGRect rect = tapLbl.frame;
for(int i=0;i<rectangleLabels.count;i++) {
UILabel *lblChange = (UILabel *)[rectangleLabels objectAtIndex:i];
lblChange.frame = CGRectMake(lblChange.frame.origin.x, lblChange.frame.origin.y, rect.size.width, rect.size.height);
}
}
}