繁体   English   中英

当我在viewcontroller上使用3视图时,它在目标c中变慢

[英]when i am using 3 view on viewcontroller it get slow in objective c

我在一个UIViewController上使用3视图。 因此,我在viewDidLoad()中有很多代码,例如:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    customActivityIndicator.animationImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"tmp-0.gif"],[UIImage imageNamed:@"tmp-1.gif"],[UIImage imageNamed:@"tmp-2.gif"],[UIImage imageNamed:@"tmp-3.gif"],[UIImage imageNamed:@"tmp-4.gif"],[UIImage imageNamed:@"tmp-5.gif"],[UIImage imageNamed:@"tmp-6.gif"],[UIImage imageNamed:@"tmp-7.gif"],[UIImage imageNamed:@"tmp-8.gif"],[UIImage imageNamed:@"tmp-9.gif"],[UIImage imageNamed:@"tmp-10.gif"],[UIImage imageNamed:@"tmp-11.gif"],[UIImage imageNamed:@"tmp-12.gif"],[UIImage imageNamed:@"tmp-13.gif"],[UIImage imageNamed:@"tmp-14.gif"],[UIImage imageNamed:@"tmp-15.gif"],nil];
    customActivityIndicator.animationDuration = 1.0; // in seconds
    customActivityIndicator.animationRepeatCount = 0; // sets to loop

    [customActivityIndicator startAnimating];

    btn.hidden=YES;


    UILabel *lab =[[UILabel alloc] init];
    lab.text =  [NSString awesomeIcon:FaMailReply];

    UIImage *listImage2 = [UIImage imageNamed:@"backicon.png.png"];
    UIButton *listButton2 = [UIButton buttonWithType:UIButtonTypeCustom];
    listButton2.backgroundColor=[UIColor whiteColor];
    [[listButton2 layer] setBorderWidth:0.5f];
    listButton2.layer.borderColor =[[UIColor blackColor] CGColor];
    listButton2.layer.cornerRadius = btn.bounds.size.width / 3.4;// this value vary as per your desire
    listButton2.clipsToBounds = YES;

    UIFont *font = [UIFont fontWithName:@"FontAwesome" size:15.0];
    UIColor *color = [UIColor blueColor];

    NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName,color,NSForegroundColorAttributeName, nil];
    //  [NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName,color,NSForegroundColorAttributeName, nil];

    NSAttributedString *attributedStr = [[NSAttributedString alloc] initWithString:lab.text attributes:attrsDictionary];



    // get the image size and apply it to the button frame
    CGRect listButton2Frame = listButton2.frame;
    listButton2Frame.size = listImage2.size;
    listButton2.frame = listButton2Frame;

    [listButton2 setAttributedTitle:attributedStr forState:UIControlStateNormal];
    [listButton2 addTarget:self
                    action:@selector(LogoutClick:)
          forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *jobsButton2 =
    [[UIBarButtonItem alloc] initWithCustomView:listButton2];


    //Notificaation Icon Button...


    UILabel *lablnotification =[[UILabel alloc] init];
    //    lab.font = [UIFont fontWithName:@"FontAwesome" size:8];
    //  lab.textColor =  [UIColor whiteColor];
    lablnotification.text =  [NSString awesomeIcon:FaHome];

    UIImage *listImage4 = [UIImage imageNamed:@"notification.png"];
    UIButton *listButton4 = [UIButton buttonWithType:UIButtonTypeCustom];
    listButton4.backgroundColor=[UIColor whiteColor];
    [[listButton4 layer] setBorderWidth:0.5f];
    listButton4.layer.borderColor =[[UIColor blackColor] CGColor];
    listButton4.layer.cornerRadius = btn.bounds.size.width / 3.4;// this value vary as per your desire
    listButton4.clipsToBounds = YES;

    UIFont *fontnotification = [UIFont fontWithName:@"FontAwesome" size:18.0];
    UIColor *colornotification = [UIColor blueColor];

    NSDictionary *attrsDictionarynotification = [NSDictionary dictionaryWithObjectsAndKeys:fontnotification,NSFontAttributeName,colornotification,NSForegroundColorAttributeName, nil];
    //  [NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName,color,NSForegroundColorAttributeName, nil];

    NSAttributedString *attributedStrnotification = [[NSAttributedString alloc] initWithString:lablnotification.text attributes:attrsDictionarynotification];

    // get the image size and apply it to the button frame
    CGRect listButton4Frame = listButton4.frame;
    listButton4Frame.size = listImage4.size;
    listButton4.frame = listButton4Frame;

    [listButton4 setAttributedTitle:attributedStrnotification forState:UIControlStateNormal];
    [listButton4 addTarget:self
                    action:@selector(ActualNotificationClick:)
          forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *jobsButton4 =
    [[UIBarButtonItem alloc] initWithCustomView:listButton4];

    UIImage *listImage3 = [UIImage imageNamed:@"ec2.png"];
    UIButton *listButton3 = [UIButton buttonWithType:UIButtonTypeCustom];

    // get the image size and apply it to the button frame
    CGRect listButton3Frame = listButton3.frame;
    listButton3Frame.size = listImage3.size;
    listButton3.frame = listButton3Frame;

    [listButton3 setImage:listImage3 forState:UIControlStateNormal];
    [listButton3 addTarget:self
                    action:@selector(EmployeeClick:)
          forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *jobsButton3 =
    [[UIBarButtonItem alloc] initWithCustomView:listButton3];

    self.navigationItem.rightBarButtonItems= [NSArray arrayWithObjects:jobsButton2,jobsButton4, nil];
    self.navigationItem.leftBarButtonItems=[NSArray arrayWithObjects:jobsButton3, nil];


    //NSUserDefault...

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    userid = [defaults objectForKey:@"UserId"];
    NSLog(@"User Id is =%@",userid);
    ServerString=[defaults objectForKey:@"ServerString"];

    DefaultRegionIDString=[defaults objectForKey:@"DefaultRegionIDString"];
    DefaultBranchIDString=[defaults objectForKey:@"DefaultBranchIDString"];
    DefaultSiteIDString=[defaults objectForKey:@"DefaultSiteIDString"];
    DefaultLocationString=[defaults objectForKey:@"DefaultLocationString"];
    DefaultDateString =[defaults objectForKey:@"DefaultDateString"];
    DefaultTimeString =[defaults objectForKey:@"DefaultTimeString"];
    DefaultEmployeeNameString=[defaults objectForKey:@"DefaultEmployeeNameString"];
    DefaultRegionNameString=[defaults objectForKey:@"DefaultRegionNameString"];
    DefaultBranchNameString=[defaults objectForKey:@"DefaultBranchNameString"];
    DefaultSiteNameString=[defaults objectForKey:@"DefaultSiteNameString"];
    DefaultEventTypeString=[defaults objectForKey:@"DefaultEventTypeString"];
    DefaultIncidentTypeString=[defaults objectForKey:@"DefaultIncidentTypeString"];
    DefaultsIncidentNameString=[defaults objectForKey:@"DefaultsIncidentNameString"];
    SegmentStringCheck=[defaults objectForKey:@"SegmentStringCheck"];
    CheckIncidentString=[defaults objectForKey:@"CheckIncidentString"];

    if([DefaultEventTypeString isEqualToString:@"1"])
    {
        lblreportregion.text = DefaultRegionIDString;
        lblreportbranch.text = DefaultBranchIDString;
        lblreportsite.text = DefaultSiteIDString;
        //  lblreportinjurytype.text=DefaultIncidentTypeString;
        txtreportlocation.text = DefaultLocationString;
        txtreportdate.text = DefaultDateString;
        txtreporttime.text = DefaultTimeString;
        txtreportemp.text = DefaultEmployeeNameString;
        txtreportregion.text=DefaultRegionNameString;
        txtreportbranch.text=DefaultBranchNameString;
        txtreportsite.text=DefaultSiteNameString;
        //  txtreportinjurytype.text = DefaultsIncidentNameString;

    }
    else if ([DefaultEventTypeString isEqualToString:@"2"])
    {
        lblnearregion.text = DefaultRegionIDString;
        lblnearbranch.text = DefaultBranchIDString;
        lblnearsite.text = DefaultSiteIDString;
        txtnearlocation.text = DefaultLocationString;
        txtneardate.text = DefaultDateString;
        txtneartime.text = DefaultTimeString;
        txtnearemp.text = DefaultEmployeeNameString;
        txtnearregion.text=DefaultRegionNameString;
        txtnearbranch.text=DefaultBranchNameString;
        txtnearsite.text=DefaultSiteNameString;
    }
    else if ([DefaultEventTypeString isEqualToString:@"3"])
    {
        lblspotingregion.text = DefaultRegionIDString;
        lblspotingbranch.text = DefaultBranchIDString;
        lblspotingsite.text = DefaultSiteIDString;
        txtspotinglocation.text = DefaultLocationString;
        txtspotingdate.text = DefaultDateString;
        txtspotingtime.text = DefaultTimeString;
        txtsportingemp.text = DefaultEmployeeNameString;
        txtspotingregion.text=DefaultRegionNameString;
        txtspotingbranch.text=DefaultBranchNameString;
        txtspotingsite.text=DefaultSiteNameString;
    }

    if([SegmentStringCheck isEqualToString:@"0"])
    {
        segment.selectedSegmentIndex = UISegmentedControlNoSegment;
        segment.selectedSegmentIndex = 0;
        viewspoting.hidden=NO;
        viewnear.hidden=YES;
        viewreport.hidden=YES;
    }
    else if ([SegmentStringCheck isEqualToString:@"1"])
    {
        segment.selectedSegmentIndex = UISegmentedControlNoSegment;
        segment.selectedSegmentIndex = 1;
        viewspoting.hidden=YES;
        viewnear.hidden=NO;
        viewreport.hidden=YES;
        //Near...

        [self nearserverconnection];
        [self nearserverconnectionincident];
        [self nearserverconnectionactivity];
    }
    else if ([SegmentStringCheck isEqualToString:@"2"])
    {
        segment.selectedSegmentIndex = UISegmentedControlNoSegment;
        segment.selectedSegmentIndex = 2;
        viewspoting.hidden=YES;
        viewnear.hidden=YES;
        viewreport.hidden=NO;


        //Report...

        [self reportserverconnection];
        [self reportserverconnectioninjury];
    }
    else
    {
        segment.selectedSegmentIndex = UISegmentedControlNoSegment;
        segment.selectedSegmentIndex = 0;
        viewspoting.hidden=NO;
        viewnear.hidden=YES;
        viewreport.hidden=YES;
    }


    //.........................//
    //Sporting Hide Code...

    //Table...
    tablesportingbranch.hidden=YES;
    tablesportingregion.hidden=YES;
    tablesportingsite.hidden=YES;

    //Label...
    lblsportingactivitytype.hidden=YES;
    lblsportingdept.hidden=YES;
    lblsportingemp.hidden=YES;
    lblspotingbranch.hidden=YES;
    lblspotingincidenttype.hidden=YES;
    lblspotingregion.hidden=YES;
    lblspotingsite.hidden=YES;



    //TextFieldDelegate...
    txtspotingsite.delegate=self;
    txtsportingemp.delegate=self;
    txtspotinglocation.delegate=self;

    //Date Picker...
    pickerspotingdate.hidden=YES;
    pickerspotingtime.hidden=YES;


    //............................//

    //Near Hide Code...

    //View...
   // viewnear.hidden=YES;

    //Table...
    tablenearbranch.hidden=YES;
    tablenearregion.hidden=YES;
    tablenearsite.hidden=YES;

    //Label...
    lblnearactivitytype.hidden=YES;
    lblnearbranch.hidden=YES;
    lblneardept.hidden=YES;
    lblnearemp.hidden=YES;
    lblnearincidenttype.hidden=YES;
    lblnearregion.hidden=YES;
    lblnearsite.hidden=YES;



    //TextFieldDelegate..
    txtnearsite.delegate=self;
    txtnearemp.delegate=self;
    txtnearlocation.delegate=self;

    //Date Picker...
    pickerneardate.hidden=YES;
    pickerneartime.hidden=YES;

    //...........................//

    //Report Hide View Code...

    //View...
   // viewreport.hidden=YES;

    //Table...
    tablereportbranch.hidden=YES;
    tablereportinjurytype.hidden=YES;
    tablereportregion.hidden=YES;
    tablereportsite.hidden=YES;

    //Label...
    lblreportbranch.hidden=YES;
    lblreportdept.hidden=YES;
    lblreportemp.hidden=YES;
    lblreportinjurytype.hidden=YES;
    lblreportregion.hidden=YES;
    lblreportsite.hidden=YES;

    //TextFieldDelegate...
    txtreportsite.delegate=self;
    txtreportemp.delegate=self;
    txtreportlocation.delegate=self;

    //Date Picker...
    pickerreporttime.hidden=YES;
    pickereportdate.hidden=YES;

    //.............................//

    //Font Asowme

    //Show...
    lblspotingShow.font = [UIFont fontWithName:@"FontAwesome" size:15];
    lblspotingShow.textColor =  [UIColor blackColor];
    lblspotingShow.text =  [NSString awesomeIcon:FaEye];

    //Scroll View...
    [scrollspoting setContentSize:CGSizeMake(300, 500)];
    [scrollnear setContentSize:CGSizeMake(300, 500)];
    [scrollreport setContentSize:CGSizeMake(300, 730)];


    UISwipeGestureRecognizer *gestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeHandler:)];
    [gestureRecognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];
    [self.view addGestureRecognizer:gestureRecognizer];

    //Button Diamiter...

    //Spoting Button...

    btnsportinghideadd.layer.cornerRadius = 4; // this value vary as per your desire
    btnsportinghideadd.clipsToBounds = YES;

    //Near Button...

    btnnearhideadd.layer.cornerRadius = 4; // this value vary as per your desire
    btnnearhideadd.clipsToBounds = YES;

    //Report Button...

    btnreportnext.layer.cornerRadius = 4; // this value vary as per your desire
    btnreportnext.clipsToBounds = YES;

    //Spoting...

    [self spotingserverconnection];
    [self spotingserverconnectionactivity];
    [self spotingserverconnectionincident];


     [txtspotingsite addTarget:self action:@selector(spotingtextFieldDidChangeSite:) forControlEvents:UIControlEventEditingChanged];


    // prevents the scroll view from swallowing up the touch event of child buttons

    [txtnearsite addTarget:self action:@selector(neartextFieldDidChangeSite:) forControlEvents:UIControlEventEditingChanged];

    [txtreportsite addTarget:self action:@selector(reporttextFieldDidChangeSite:) forControlEvents:UIControlEventEditingChanged];

    UITapGestureRecognizer *tapGesturereportinjury = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideSubViewreportinjury)];

    // prevents the scroll view from swallowing up the touch event of child buttons
    tapGesturereportinjury.cancelsTouchesInView = NO;

    [scrollreport addGestureRecognizer:tapGesturereportinjury];

    IssueSelectedIDarray=[[NSMutableArray alloc] init];
    IssueSelectedNamearray=[[NSMutableArray alloc] init];


    ReportInjurySelectedNamearray=[[NSMutableArray alloc] init];
    ReportInjurySelectedIDarray=[[NSMutableArray alloc] init];


    [self testInternetConnection];


    //Spoting Date and Time..


    NSDateFormatter *Spotingdateformatter;

    Spotingdateformatter = [[NSDateFormatter alloc] init];
    [Spotingdateformatter setDateFormat:@"dd/MM/yyyy"];

    SpotingdateString = [Spotingdateformatter stringFromDate:[NSDate date]];
    NSLog(@"Current Time =%@",SpotingdateString);
    CurrentDate=SpotingdateString;


    NSDate * now = [NSDate date];
    NSDateFormatter *Spotingtimeformatter = [[NSDateFormatter alloc] init];
    [Spotingtimeformatter setDateFormat:@"hh:mm"];
    SpotingTimeString = [Spotingtimeformatter stringFromDate:now];
    NSLog(@"newDateString %@", SpotingTimeString);

    //Near Date and Time..


    NSDateFormatter *Neardateformatter;

    Neardateformatter = [[NSDateFormatter alloc] init];
    [Neardateformatter setDateFormat:@"dd/MM/yyyy"];

    NeardateString = [Neardateformatter stringFromDate:[NSDate date]];
    NSLog(@"Current Time =%@",NeardateString);


    NSDate * nowNear = [NSDate date];
    NSDateFormatter *Neartimeformatter = [[NSDateFormatter alloc] init];
    [Neartimeformatter setDateFormat:@"hh:mm"];
    NearTimeString = [Neartimeformatter stringFromDate:nowNear];
    NSLog(@"newDateString %@", NearTimeString);


    //Report Date and Time..


    NSDateFormatter *Reportdateformatter;

    Reportdateformatter = [[NSDateFormatter alloc] init];
    [Reportdateformatter setDateFormat:@"dd/MM/yyyy"];

    ReportdateString = [Reportdateformatter stringFromDate:[NSDate date]];
    NSLog(@"Current Time =%@",ReportdateString);


    NSDate * nowReport = [NSDate date];
    NSDateFormatter *Reporttimeformatter = [[NSDateFormatter alloc] init];
    [Reporttimeformatter setDateFormat:@"hh:mm"];
    ReportTimeString = [Reporttimeformatter stringFromDate:nowReport];
    NSLog(@"newDateString %@", ReportTimeString);

}

它的工作要慢得多。 有什么办法可以加快速度吗?

ViewName *Incedent =[[ViewName alloc] initWithNibName:@"ViewName" bundle:nil];
[self.navigationController pushViewController:Incedent animated:YES];

我已经将此代码用于pushviewcontroller。

你需要评估你的代码做什么,并找出它是缓慢的。 我不知道此方法在做什么,但我敢打赌:

[self testInternetConnection];

是问题之一。 注释掉该行,然后看看会发生什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM