0

うまくいけば、誰かが私を助けてくれます。最近、ビュー内のアニメーションに問題があります。私はそれに対する解決策を見つけることができませんでしたが、ビュー内で大きなことは何も起こっていなかったので今までは問題ありませんでしたが、表のセルをクリックすると、ビュー内に警告ビューが表示されます。アラート ビューは画面の右上隅から表示され、画面を下に移動し、黒い背景で大きくなります。右上隅から降りずに出現させたいだけです。私は常に同じ方法でアラート ビューを表示してきましたが、以前はビューでアニメーションの問題が発生したことはありませんでした。下にgifへのリンクを貼っておきます。ビューのコードも追加します。

GIF:

https://imgflip.com/gif/x61vg

Track1.h

//
//  Track1.h
//  uDropOff 3
//
//  Created by Curtis Boylan on 06/01/2016.
//  Copyright © 2016 Curtis Boylan. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "TableViewCell.h"

@interface Track1 : UIViewController <UITableViewDelegate,UITableViewDataSource>

- (IBAction)back;
@property (weak, nonatomic) IBOutlet UITextField *trackingnumber;
- (IBAction)track;

@property (weak, nonatomic) IBOutlet UITableView *tableViewObject;



@end

Track1.m

//
//  Track1.m
//  uDropOff 3
//
//  Created by Curtis Boylan on 06/01/2016.
//  Copyright © 2016 Curtis Boylan. All rights reserved.
//

#import "Track1.h"
#import "TableViewCell.h"

@interface Track1 ()

@end

@implementation Track1
{
    NSMutableArray *tableAray;

}

- (void)viewDidLoad {
    [super viewDidLoad];

    tableAray = [[NSMutableArray alloc] initWithObjects:@"test",@"test2", nil];

    // [self webstuff1];
    // Do any additional setup after loading the view.
  //  UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
   // [refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
   // [self.table addSubview:refreshControl];

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

- (IBAction)back {
    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"main"];
    [self presentViewController:vc animated:YES completion:NULL];

}
- (IBAction)track {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

    // saving an NSString
    [prefs setObject:self.trackingnumber.text forKey:@"uDropOffTracking"];
    Track1 *track2 = [self.storyboard instantiateViewControllerWithIdentifier:@"track2"];
    [self presentViewController:track2 animated:NO completion:nil];

}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

    return [tableAray count];

}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

    return 70;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    static NSString *simpleTableIdentifier = @"TableViewCell";



    TableViewCell *cell = (TableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil)

    {

        NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"TableViewCell" owner:self options:nil];

        cell = [nibArray objectAtIndex:0];

    }

    cell.tracking.text = [tableAray objectAtIndex:indexPath.row];





    return cell;

}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

    UIAlertView *selectedAlert = [[UIAlertView alloc]

                                  initWithTitle:[NSString stringWithFormat:@"%@ Selected", [tableAray objectAtIndex:indexPath.row]] message:[NSString stringWithFormat:@"It takes 20 mins to prepare!"] delegate:nil cancelButtonTitle:@"Got It" otherButtonTitles:nil];
    [selectedAlert show];

}
@end

ありがとう!

4

2 に答える 2

2

使いますか

[UIView beginAnimations: context:];

あなたのコードのどこかに?

必ず電話する

[UIView commitAnimations];

アニメーションオプションを設定した直後。

于 2016-01-11T10:07:21.137 に答える
0

私は解決策を見つけました.Vuの答えとともに、track1を表示していた他のビューで次のことを行いました.

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"track1"];
vc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:vc animated:YES completion:NULL];}

それを次のように変更し、ソリューションとともにVuが私の問題を修正しました:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"track1"];
[self presentViewController:vc animated:NO completion:NULL];}
于 2016-01-11T10:44:02.977 に答える