2016-11-21 164 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; 
} 

} 
相關問題