2016-11-21 163 views
1

我在我的项目中使用SWRevealViewController目标c。有时当我滑动左侧菜单时,第一个项目被移动。只有第一个项目,我不知道为什么,因为它与其他项目具有相同的利润率。在左侧菜单中移动视图项目SWRevealViewController目标c

此外,它不是tableview,它只是在故事板中创建的静态视图。

有时是不正确显示此

enter image description here

它需要是这样的

enter image description here 第一项有时感动。

任何想法? Thx寻求帮助;)

+0

不能得到你的问题请具体解释.. – vaibhav

+0

@vaibhav问题是修复uilabel填充位置。有时第一行的文本设置不正确 – Vinodh

+0

@Vinodh是正确的...... –

回答

1

请使用表格查看它将很容易为您优化代码。您可以在tableView的didSelect方法中导航每个视图。 这里是代码请试试这个。

arrMenuItems = [[NSMutableArray alloc]initWithObjects:@"HOME",@"YOUR WORK", @"BOOKMARKS", @"GETSTARTED",@"SETTING", @"LOG OUT",nil]; 


#pragma mark - Table view delegate and data source 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    return 1; 
} 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return arrMenuItems.count; 
} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *cellid = @"cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellid]; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellid]; 
     cell.selectionStyle = UITableViewCellSelectionStyleNone; 
    } 

    cell.textLabel.text = [arrMenuItems objectAtIndex:indexPath.row]; 
    return cell; 
} 

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

    switch (indexPath.row) { 
     case 0:{ 

      HomeViewController *rootViewController = InstantiateVC(@"HomeViewController"); 

       UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootViewController]; 
       [navController setViewControllers: @[rootViewController] animated: YES]; 

       [self.revealViewController setFrontViewController:navController]; 
       [self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES]; 
      } 
      break; 
     } 

     case 1:{ 
      YourWorkViewController *homeVC = InstantiateVC(@"YourWorkViewController"); 

      UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:homeVC]; 
      [navController setViewControllers: @[homeVC] animated: YES]; 

      [self.revealViewController setFrontViewController:navController]; 
      [self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES]; 

      break; 
     } 

     case 2:{ 
      BookMarkViewController *writeToUsVC = InstantiateVC(@"BKBWriteToUsVC"); 

      writeToUsVC.isFromVCTag = WRITE_TO_US; 

      UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:writeToUsVC]; 
      [navController setViewControllers: @[writeToUsVC] animated: YES]; 

      [self.revealViewController setFrontViewController:navController]; 
      [self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES]; 
      break; 
     } 
     case 3:{ 
      GetStartedViewController *aboutUsVC = InstantiateVC(@"BKBAboutVC"); 


      UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:aboutUsVC]; 
      [navController setViewControllers: @[aboutUsVC] animated: YES]; 

      [self.revealViewController setFrontViewController:navController]; 
      [self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES]; 
      break; 
     } 
     case 4:{ 
      SettingViewController *writeToUsVC = InstantiateVC(@"BKBWriteToUsVC"); 

      writeToUsVC.isFromVCTag = CONTACT_US; 

      UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:writeToUsVC]; 
      [navController setViewControllers: @[writeToUsVC] animated: YES]; 

      [self.revealViewController setFrontViewController:navController]; 
      [self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES]; 
      break; 
     } 
     case 5:{ 
      LogOutViewController *writeToUsVC = InstantiateVC(@"BKBWriteToUsVC"); 

      writeToUsVC.isFromVCTag = CONTACT_US; 

      UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:writeToUsVC]; 
      [navController setViewControllers: @[writeToUsVC] animated: YES]; 

      [self.revealViewController setFrontViewController:navController]; 
      [self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES]; 



      break; 
     } 

     default: 
      break; 
    } 

} 

请根据您的要求更改您的ViewController。

+0

问题是填充未设置为第一个单元格,但上面的代码将如何解决它。我不明白,请解释 – Vinodh

+0

@克里希纳非常感谢!我会尽力实施它。 –

+0

但是,如果没有使用tableview重建菜单,第一个元素的填充设置也很有趣。 –

0

//修改后的代码

//你可以用你自己创建所有东西。这是使用swreveal非常简单的方法。我希望这会有所帮助。

NSArray *menuItems; 

menuItems = @[@"title",@"Edit Profile",@"Match",@"Add Event",@"Give",@"Events",@"Market place",@"Recognizes businesses",@"About",@"Termsnuse",@"changePassword",@"Logout"]; 


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

{ 
return [menuItems count]; 
} 

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


NSString *CellIdentifier = [menuItems objectAtIndex:indexPath.row]; 
UIImageView*imgProfile=[[UIImageView alloc]initWithFrame:CGRectMake(10, 20, 50, 50)]; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

UIView *bgColorView = [[UIView alloc] init]; 
bgColorView.backgroundColor = Black; 
[cell setSelectedBackgroundView:bgColorView]; 

if (indexPath.row==0) { 
    UILabel*lbl; 
    lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 130)]; 

    UILabel*lblUserName; 
    UIImageView*imgUser; 
    imgUser=[[UIImageView alloc]initWithFrame:CGRectMake(100, 10, 80, 80)]; 

    lblUserName=[[UILabel alloc]initWithFrame:CGRectMake(40, 95, 200, 30)]; 

    lbl.backgroundColor=Black; 
    imgProfile.backgroundColor=[UIColor orangeColor]; 

    NSUserDefaults*defaults=[NSUserDefaults standardUserDefaults]; 


    NSDictionary *dict = [defaults objectForKey:@"Ucountry"]; 



    NSString *strImage = [dict objectForKey:@"image"]; 

    if ([strImage isEqualToString:@""]) { 

     NSLog(@"strImage====>%@",strImage); 
//   strImage = [strImage stringByReplacingOccurrencesOfString:@" " withString:@""]; 
//   NSURL *imageURL = [[NSURL alloc]initWithString:strImage]; 
//   [imgUser sd_setImageWithURL:imageURL placeholderImage:[UIImage imageNamed:@"user"]]; 
    }else{ 
     strImage = [strImage stringByReplacingOccurrencesOfString:@" " withString:@""]; 
     NSURL *imageURL = [[NSURL alloc]initWithString:strImage]; 
     [imgUser sd_setImageWithURL:imageURL placeholderImage:[UIImage imageNamed:@"user"]]; 
    } 







    imgUser.layer.cornerRadius=40; 
    imgUser.clipsToBounds=YES; 
    imgUser.layer.borderWidth=2.0f; 
    imgUser.layer.borderColor=bgColor.CGColor; 
    //imgUser.image=[UIImage imageNamed:@"welcome_rabecca"]; 


    NSString *strFullName =[dict objectForKey:@"firstName"]; 
    lblUserName.text=strFullName; 
    lblUserName.textColor=White; 
    lblUserName.textAlignment=NSTextAlignmentCenter; 
    lblUserName.font=[UIFont fontWithName:@"Kiro" size:14]; 
    lblUserName.backgroundColor=Black; 

    [cell addSubview:lbl]; 
    [cell addSubview:imgUser]; 
    [cell addSubview:lblUserName]; 

} 
else if (indexPath.row==1) 

{ 
    UILabel*lbl; 
    UILabel*lbln; 
    UIImageView*img; 
    img=[[UIImageView alloc]initWithFrame:CGRectMake(8, 12, 20, 20)]; 
    lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    lbln=[[UILabel alloc]initWithFrame:CGRectMake(47, 0, 320, 44)]; 

    lbl.backgroundColor=Black; 
    lbl.layer.borderWidth=1.0f; 
    lbl.layer.borderColor=bgColor.CGColor; 
    [email protected]"Edit Profile"; 
    lbln.textColor=White; 
    lbln.font=[UIFont fontWithName:@"Kiro" size:18]; 
    img.image=[UIImage imageNamed:@"edit"]; 

    [cell addSubview:lbl]; 
    [cell addSubview:lbln]; 
    [cell addSubview:img]; 
} 
else if (indexPath.row==2) 

{ 
    UILabel*lbl; 
    UILabel*lbln; 
    UIImageView*img; 
    img=[[UIImageView alloc]initWithFrame:CGRectMake(8, 12, 20, 20)]; 
    lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    lbln=[[UILabel alloc]initWithFrame:CGRectMake(47, 0, 320, 44)]; 

    lbl.backgroundColor=Black; 
    lbl.layer.borderWidth=1.0f; 
    lbl.layer.borderColor=bgColor.CGColor; 
    [email protected]"Match a Friend"; 
    lbln.textColor=White; 
    lbln.font=[UIFont fontWithName:@"Kiro" size:18]; 
    img.image=[UIImage imageNamed:@"match"]; 

    [cell addSubview:lbl]; 
    [cell addSubview:lbln]; 
    [cell addSubview:img]; 

} 
else if (indexPath.row==3) 

{ 
    UILabel*lbl; 
    UILabel*lbln; 
    UIImageView*img; 
    img=[[UIImageView alloc]initWithFrame:CGRectMake(8, 12, 20, 20)]; 
    lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    lbln=[[UILabel alloc]initWithFrame:CGRectMake(47, 0, 320, 44)]; 

    lbl.backgroundColor=Black; 
    lbl.layer.borderWidth=1.0f; 
    lbl.layer.borderColor=bgColor.CGColor; 
    [email protected]"Post Charity Events"; 
    lbln.textColor=White; 
    lbln.font=[UIFont fontWithName:@"Kiro" size:18]; 
    img.image=[UIImage imageNamed:@"addevent"]; 

    [cell addSubview:lbl]; 
    [cell addSubview:lbln]; 
    [cell addSubview:img]; 

} 

else if (indexPath.row==4) 
{ 

    UILabel*lbl; 
    UILabel*lbln; 
    UIImageView*img; 
    img=[[UIImageView alloc]initWithFrame:CGRectMake(8, 12, 20, 20)]; 
    lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    lbln=[[UILabel alloc]initWithFrame:CGRectMake(47, 0, 320, 44)]; 

    lbl.backgroundColor=Black; 
    lbl.layer.borderWidth=1.0f; 
    lbl.layer.borderColor=bgColor.CGColor; 
    [email protected]"Give to Causes"; 
    lbln.textColor=White; 
    lbln.font=[UIFont fontWithName:@"Kiro" size:18]; 
    img.image=[UIImage imageNamed:@"give"]; 

    [cell addSubview:lbl]; 
    [cell addSubview:lbln]; 
    [cell addSubview:img]; 

} else if (indexPath.row==5) 
{ 

    UILabel*lbl; 
    UILabel*lbln; 
    UIImageView*img; 
    img=[[UIImageView alloc]initWithFrame:CGRectMake(8, 12, 20, 20)]; 
    lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    lbln=[[UILabel alloc]initWithFrame:CGRectMake(47, 0, 320, 44)]; 

    lbl.backgroundColor=Black; 
    lbl.layer.borderWidth=1.0f; 
    lbl.layer.borderColor=bgColor.CGColor; 
    [email protected]"Events"; 
    lbln.textColor=White; 
    lbln.font=[UIFont fontWithName:@"Kiro" size:18]; 
    img.image=[UIImage imageNamed:@"event"]; 

    [cell addSubview:lbl]; 
    [cell addSubview:lbln]; 
    [cell addSubview:img]; 


} else if (indexPath.row==6) { 

    UILabel*lbl; 
    UILabel*lbln; 
    UIImageView*img; 
    img=[[UIImageView alloc]initWithFrame:CGRectMake(8, 12, 20, 20)]; 
    lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    lbln=[[UILabel alloc]initWithFrame:CGRectMake(47, 0, 320, 44)]; 

    lbl.backgroundColor=Black; 
    lbl.layer.borderWidth=1.0f; 
    lbl.layer.borderColor=bgColor.CGColor; 
    [email protected]"Market Place"; 
    lbln.textColor=White; 
    lbln.font=[UIFont fontWithName:@"Kiro" size:18]; 
    img.image=[UIImage imageNamed:@"market"]; 

    [cell addSubview:lbl]; 
    [cell addSubview:lbln]; 
    [cell addSubview:img]; 


} 
else if (indexPath.row==7) { 

    UILabel*lbl; 
    UILabel*lbln; 
    UIImageView*img; 
    img=[[UIImageView alloc]initWithFrame:CGRectMake(8, 12, 20, 20)]; 
    lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    lbln=[[UILabel alloc]initWithFrame:CGRectMake(47, 0, 320, 44)]; 

    lbl.backgroundColor=Black; 
    lbl.layer.borderWidth=1.0f; 
    lbl.layer.borderColor=bgColor.CGColor; 
    [email protected]"Promote Your Business"; 
    lbln.textColor=White; 
    lbln.font=[UIFont fontWithName:@"Kiro" size:18]; 
    img.image=[UIImage imageNamed:@"market"]; 

    [cell addSubview:lbl]; 
    [cell addSubview:lbln]; 
    [cell addSubview:img]; 


} 
else if (indexPath.row==8) { 

    UILabel*lbl; 
    UILabel*lbln; 
    UIImageView*img; 
    img=[[UIImageView alloc]initWithFrame:CGRectMake(8, 12, 20, 20)]; 
    lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    lbln=[[UILabel alloc]initWithFrame:CGRectMake(47, 0, 320, 44)]; 

    lbl.backgroundColor=Black; 
    lbl.layer.borderWidth=1.0f; 
    lbl.layer.borderColor=bgColor.CGColor; 
    [email protected]"About"; 
    lbln.textColor=White; 
    lbln.font=[UIFont fontWithName:@"Kiro" size:18]; 
    img.image=[UIImage imageNamed:@"about"]; 

    [cell addSubview:lbl]; 
    [cell addSubview:lbln]; 
    [cell addSubview:img]; 

} 


else if (indexPath.row==9) { 

    UILabel*lbl; 
    UILabel*lbln; 
    UIImageView*img; 
    img=[[UIImageView alloc]initWithFrame:CGRectMake(8, 12, 20, 20)]; 
    lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    lbln=[[UILabel alloc]initWithFrame:CGRectMake(47, 0, 320, 44)]; 

    lbl.backgroundColor=Black; 
    lbl.layer.borderWidth=1.0f; 
    lbl.layer.borderColor=bgColor.CGColor; 
    [email protected]"Terms of Use"; 
    lbln.textColor=White; 
    lbln.font=[UIFont fontWithName:@"Kiro" size:18]; 
    img.image=[UIImage imageNamed:@"term"]; 

    [cell addSubview:lbl]; 
    [cell addSubview:lbln]; 
    [cell addSubview:img]; 

} 
else if (indexPath.row==10){ 
    UILabel*lbl; 
    UILabel*lbln; 
    UIImageView*img; 
    img=[[UIImageView alloc]initWithFrame:CGRectMake(8, 12, 20, 20)]; 
    lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    lbln=[[UILabel alloc]initWithFrame:CGRectMake(47, 0, 320, 44)]; 

    lbl.backgroundColor=Black; 
    lbl.layer.borderWidth=1.0f; 
    lbl.layer.borderColor=bgColor.CGColor; 
    [email protected]"Change Password"; 
    lbln.textColor=White; 
    lbln.font=[UIFont fontWithName:@"Kiro" size:18]; 
    img.image=[UIImage imageNamed:@"changePassword"]; 

    [cell addSubview:lbl]; 
    [cell addSubview:lbln]; 
    [cell addSubview:img]; 


} else if (indexPath.row==11){ 
    UILabel*lbl; 
    UILabel*lblLine; 
    UILabel*lbln; 
    UIImageView*img; 
    img=[[UIImageView alloc]initWithFrame:CGRectMake(8, 12, 20, 20)]; 
    lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    lbln=[[UILabel alloc]initWithFrame:CGRectMake(47, 0, 320, 44)]; 

    lblLine=[[UILabel alloc]initWithFrame:CGRectMake(0, 39, 320, 1)]; 
    lblLine.backgroundColor=bgColor; 
    lbl.backgroundColor=Black; 
    lbl.layer.borderWidth=1.0f; 
    lbl.layer.borderColor=bgColor.CGColor; 
    [email protected]"Logout"; 
    lbln.textColor=White; 
    lbln.font=[UIFont fontWithName:@"Kiro" size:18]; 
    img.image=[UIImage imageNamed:@"logout"]; 

    [cell addSubview:lbl]; 
    [cell addSubview:lbln]; 
    [cell addSubview:img]; 
    [cell addSubview:lblLine]; 
} 
/* 

*/ 
// cell.backgroundColor=[UIColor whiteColor]; 

    return cell; 
} 


- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
if (indexPath.row==0) { 
    return 130; 
}else if (indexPath.row==13) 
{ 
    return 70; 
}else{ 
    return 40; 
} 

} 
相关问题