Как создать изображение профиля контакта на UITableViewGrouped в iphone - PullRequest
0 голосов
/ 26 июля 2011

В настоящее время у меня есть UITableViewController в сгруппированном варианте. Я пытаюсь создать что-то похожее на пользовательский интерфейс адресной книги, в котором есть изображение профиля и имя рядом с ним. Есть ли способ добавить изображение профиля над названием компании и именем человека, помимо изображения, как на изображении ниже? Любой пример или Apple Book Reference будут полезны.

enter image description here

Ответы [ 2 ]

0 голосов
/ 26 июля 2011

Код для получения имени и изображения контактов следующий

+ (NSMutableArray *) getAllContacts {

  // Fetch the address book 
    ABAddressBookRef addressBook = ABAddressBookCreate();
   NSArray *people = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
  NSMutableArray *contacts = [NSMutableArray array];

  for (CFIndex i = 0; i < [people count]; i++) {

    ABRecordRef record = [[people objectAtIndex:i] retain];
    NSString *fullname =(NSString *)ABRecordCopyCompositeName(record); 
    NSMutableDictionary *dict = [NSMutableDictionary dictionary] ;
    if (![contacts containsObject:fullname]) {
      [dict setValue:fullname forKey:@"name"];
      changes = YES;
    }
    if (ABPersonHasImageData(record)) {
      UIImage *image = [UIImage imageWithData:(NSData *)ABPersonCopyImageData(record)];
      [dict setObject:image forKey:@"image"];
      changes = YES;
    }

    CFRelease(record);
    [fullname release];
  }
  CFRelease(addressBook);
  [people release];

  return contacts;
}

Что касается ячейки, просто установите cell.imageView.image и cell.textLabel.text в качестве изображения контакта и имени контакта. Если вам нужна дополнительная настройка, попробуйте избежать уже реализованных стилей и создайте свой собственный.

0 голосов
/ 26 июля 2011
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

// Create
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    //cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;

}

// Configure
switch (indexPath.row) {
    case 0: 
        cell.textLabel.text = @"                Evolutions";
        cell.backgroundColor=[UIColor clearColor];
        cell.textLabel.textColor=[UIColor whiteColor];
        CGRect myImageRect =CGRectMake(20,10,75,80);
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:myImageRect];
        [imageView setImage:[UIImage imageNamed:@"page-1.jpg"]];
        [cell addSubview :imageView];
        [imageView release]; 

        UIButton *btnView= [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [btnView addTarget:self action:@selector(View:)forControlEvents:UIControlEventTouchDown];
        [btnView setTitle:@"View" forState:UIControlStateNormal];
        [btnView setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        btnView.frame=CGRectMake(235,36, 72,30 );

        [ cell addSubview: btnView];
        break;

enter image description here

Я хочу создать адресную книгу, подобную этой, и использовать этот код.

...