2016-11-21 7 views
1

Я использую SWRevealViewController в своем проекте на объективе c. Иногда, когда я перемещаю левое меню, сначала перемещается первый элемент. Только первый элемент, я не знаю, потому что он имеет те же поля, что и другие.Перемещенные элементы просмотра в левом меню SWRevealViewController object c

Кроме того, это не табличное представление, а просто статические представления, созданные в раскадровке.

Иногда это показано неправильно Это

enter image description here

Это должны быть как это

enter image description here Первый элемент перемещается иногда.

Любые идеи? Thx для помощи;)

+0

не может получить ваши Ques пожалуйста, объясните более конкретно .. – vaibhav

+0

@vaibhav вопроса является исправить UILabel обивка постион. иногда текст первой строки не устанавливался должным образом – Vinodh

+0

@ Vinodh это правильно ... –

ответ

1

Пожалуйста, используйте вид таблицы, это будет легко для вас с оптимизацией кода. Вы можете перемещаться по каждому виду в методе didSelect таблицыView. Вот код, пожалуйста, попробуйте это.

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; 
} 

}