我無法找到爲什麼我第一次移動子視圖或爲其設置動畫時,子視圖的背景縮小到子視圖的左上角。 (不知道它是否在技術上屬於'子視圖',因爲我拖到我的主視圖上的對象被標記爲'視圖')當視圖處理或動畫時,視圖背景縮小
對於本示例,我將提供一個動畫示例,以便您可以看到發生了什麼更輕鬆。
這裏是我的.h條目(2個目的,一個按鈕和一個視圖)
@property (weak, nonatomic) IBOutlet UIView *floatPad;
- (IBAction)toggleButton:(UIButton *)sender;
對於此示例總覽視圖位於(20,800)的尺寸的(728, 186)。我還在界面生成器中將背景設置爲淺灰色以顯示更好的結果。
該按鈕在屏幕上和屏幕之間切換視圖,通過屏幕底部滑動(通過動畫代碼)。
這裏是我的.m項(1 BOOL,1的UIColor,加上「viewDidLoad中」和「切換按鈕」的代碼)
@interface ViewController()
@property (assign, nonatomic) BOOL floatPadVisible;
@property (retain, nonatomic) UIColor* redBackground;
@end
@implementation ViewController
@synthesize floatPad;
@synthesize floatPadVisible;
@synthesize redBackground;
- (void)viewDidLoad {
floatPadVisible:YES;
redBackground = [UIColor colorWithRed:179/255.0 green:1/255.0 blue:54/255.0 alpha:1.0];
[super viewDidLoad];
}
- (IBAction)toggleButton:(UIButton *)sender {
if (floatPadVisible) { //is floatPadVisible BOOL set to YES
[UIView beginAnimations:@"floatPad" context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationDelegate:self];
[floatPad setFrame:CGRectMake(20, 1004, 584, 145)];
[floatPad setBackgroundColor:redBackground];
[UIView commitAnimations];
floatPadVisible = NO;
}
else {
[UIView beginAnimations:@"floatPad" context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationDelegate:self];
[floatPad setFrame:CGRectMake(20, 800, 584, 145)];
[UIView commitAnimations];
floatPadVisible = YES;
}
}
的問題是你第一次打的切換按鈕,視圖不動,只有背景縮小。我說縮小了,因爲你仍然可以在視圖左側的20點空間。如果你在視圖內部放置一個對象,它不會移動,這告訴我視圖不縮小,只有背景。在第一個「切換」按鈕後按鈕按預期運行。我添加了背景更改顏色代碼,以顯示第一個切換從不調用動畫代碼,顯然背景在第二個切換之前不會更改顏色。
你知道,有一天我要編寫一種與Xcode完全不兼容的語言,叫做Xcode,只是爲了讓人們失望。在此之前,將[Xcode]標籤限制爲與IDE相關的問題,而不是與語言相關的問題。 – CodaFi 2013-03-23 16:10:21
我現在明白了。它確實感到多餘。所以xcode標籤只針對有關應用程序本身的問題或疑問。 – tcison 2013-03-23 18:55:12