Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何为计算器编程自定义局部视图或子视图?_Objective C_Ios_Xcode - Fatal编程技术网

Objective c 如何为计算器编程自定义局部视图或子视图?

Objective c 如何为计算器编程自定义局部视图或子视图?,objective-c,ios,xcode,Objective C,Ios,Xcode,我正在构建一个基本的计算器应用程序。该计算器已具有完整的功能和基本功能。我遇到的问题是,我在屏幕上没有空间添加其他更高级的功能。理想情况下,我想做的是创建某种类型的子类和视图,当按下屏幕底部的按钮时,这些子类和视图会滑动到标签的底部(显示完成的计算)。换句话说,我想要一个包含更多运算符和计算选项的视图向上滑动到标签底部,我不希望此视图覆盖标签中显示的任何数字。是否仍有实现此目的的方法?您可以使用UIAnimations创建一个动画,而不需要对UIView属性进行任何更改。您可以通过将frame.

我正在构建一个基本的计算器应用程序。该计算器已具有完整的功能和基本功能。我遇到的问题是,我在屏幕上没有空间添加其他更高级的功能。理想情况下,我想做的是创建某种类型的子类和视图,当按下屏幕底部的按钮时,这些子类和视图会滑动到标签的底部(显示完成的计算)。换句话说,我想要一个包含更多运算符和计算选项的视图向上滑动到标签底部,我不希望此视图覆盖标签中显示的任何数字。是否仍有实现此目的的方法?

您可以使用UIAnimations创建一个动画,而不需要对UIView属性进行任何更改。您可以通过将frame.origin.y设置为480来隐藏UIView,然后更改矩形并将其包装到UIAnimation中

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.75];
CGRect newFrame = newSubView.frame;
newFrame.origin.y -= newSubView.frame.size.height;
newSubView.frame = newFrame;
[UIView commitAnimations];
更新

如果您的目标是iOS 4.0及更高版本,则应使用新的UIAnimations界面

UIViewAnimationOptions options = UIViewAnimationOptionCurveLinear;
[UIView animateWithDuration:0.75 delay:0 options:options 
        animations:^(){
            CGRect newFrame = newSubView.frame;
            newFrame.origin.y -= newSubView.frame.size.height;
            newSubView.frame = newFrame;
        } 
        completion:^(BOOL finished){
           //Do something upon completion
        }];

是的,你可以。按下按钮后,创建新视图(具有附加功能),将其作为子视图添加到self.view,并设置对其帧的更改动画,使其帧从可见视图下方更改为正好位于手指下方

像这样:

-(void) buttonPressed {
 UIView *myNewView = << create your view >>
 myNewView.frame = CGRectMake(0,480, 320,200);  // or whatever your width and height are
    // 480 means it will be below the visible frame.
 [self.view addSubview: myNewView];
 float bottom_Y_of_digit_display = 100;// or wherever it is...

 [UIView beginAnimations:nil contenxt:nil];
 [UIView setAnimationDelay: 0.0];
 [UIView setAnimationDuration: 1.0];  // one second.
 myNewView.frame = CGRectMake(0,bottom_y_of_digit_display, 320,200);
 [UIView commitAnimations];
}
-(无效)按钮按下{
UIView*myNewView=>
myNewView.frame=CGRectMake(0480320200);//或任意宽度和高度
//480表示它将位于可见边框下方。
[self.view addSubview:myNewView];
浮点数显示的底部\u Y\u=100;//或任何位置。。。
[UIView beginAnimations:nil contenxt:nil];
[UIView设置动画延迟:0.0];
[UIView setAnimationDuration:1.0];//一秒钟。
myNewView.frame=CGRectMake(0,数字显示的底部y,320200);
[UIView委员会];
}

我对xcode和objective-c还很陌生,我正试着对这一点保持清醒的头脑。按下这个按钮会是一个动作,对吗?我不明白的是>。我知道你给它分配了一个指向UIView类的指针。但我不明白如何通过这个动作方法创建一个视图。是的,在你的按钮中,指定当用户点击它时,它调用那个方法(在里面触摸)。您需要创建一个新类,该类将是UIView的子类,并将包含所有其他高级功能。假设它被称为“AdvancedView”。然后像这样实例化该类:AdvancedView*myNewView=[[AdvancedView alloc]init];