【发布时间】:2011-07-06 07:03:03
【问题描述】:
我对 iPhone/iPad 开发非常陌生。 你能帮我以编程方式创建它吗?我想以编程方式展开/折叠 UIView。
这个可展开/可折叠的视图将有一些文本字段和标签,它们应该随着该视图出现和消失
【问题讨论】:
我对 iPhone/iPad 开发非常陌生。 你能帮我以编程方式创建它吗?我想以编程方式展开/折叠 UIView。
这个可展开/可折叠的视图将有一些文本字段和标签,它们应该随着该视图出现和消失
【问题讨论】:
要更改 UIView 在其父级中的大小/位置,只需更改其 frame 属性:
CGRect newFrame = myView.frame;
newFrame.origin.x = newX;
newFrame.origin.y = newY;
newFrame.size.width = newWidth;
newFrame.size.height = newHeight;
myView.frame = newFrame;
【讨论】:
你可以试试这个
CGRect frame = [currentView frame];
frame.size.width = 999;//Some value
frame.size.height = 444;//some value
[currentView setFrame:frame];
每当您想增加/减少视图大小时,您都可以按照此操作
【讨论】:
假设您在 UIViewController 类中有一个 UIView 实例,如下所示:
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(x, y, w1, h1)];
[self.view addSubview:view];
根据您设置视图可见性的要求,就像我在这里所做的那样。当控制器加载它的视图时,我没有显示视图..
[view setHidden:YES];
维护一个标志来检查视图实例的可见性.. 假设isViewVisible 是我检查视图可见性的标志.. 我在开始时将其设置为 NO..
isHelpViewVisible = NO;
我在这里写了一个动作方法(viewClicked)来展开和折叠视图对象,把这个动作方法给一个按钮实例,它就会起作用。
- (void)viewClicked:(id)sender {
if (!isViewVisible) {
isViewVisible = YES;
[view setHidden:NO];
[UIView beginAnimations:@"animationOff" context:NULL];
[UIView setAnimationDuration:1.3f];
[view setFrame:CGRectMake(x, y, w1, h1)];
[UIView commitAnimations];
} else {
isViewVisible = NO;
[view setHidden:NO];
[UIView beginAnimations:@"animationOff" context:NULL];
[UIView setAnimationDuration:1.3f];
[view setFrame:CGRectMake(x, y, width, hight)];
[UIView commitAnimations];
}
}
并将文本字段和标签对象作为子视图添加到视图对象,并将动画设置为这些对象......它会起作用。
【讨论】:
从上面替换以下内容:
[UIView beginAnimations:@"animationOff" context:NULL];
[UIView setAnimationDuration:1.3f];
[view setFrame:CGRectMake(x, y, w1, h1)];
[UIView commitAnimations];
使用新的动画制作方式:
[UIView animateWithDuration:1.3f animations:^{
self.frame = CGRectMake( x1, x2, w1, h1);
} completion:^(BOOL finished) {
// this gives us a nice callback when it finishes the animation :)
}];
【讨论】: