�@StatusXMLParser�N���X��RootViewController�N���X����Ăяo���Ďg���Ă݂܂��傤�B�uRootViewController.h�v���ȉ��̂悤�ɕҏW���܂��B
#import <UIKit/UIKit.h> @interface RootViewController : UITableViewController { NSArray *statuses; } @property(retain, nonatomic) NSArray *statuses; @end
�@RootViewController.h�ɂ͉�͍ς݂̃f�[�^��ۑ�����statuses�v���p�e�B��lj����܂��B
�@�����t�@�C����RootViewController.m��StatusXMLParser.h���C���|�[�g���܂��B
#import "StatusXMLParser.h"
�@�܂��A�v���p�e�B�̎������錾���܂��B
@synthesize statuses
�@���ɁAloadTimeLineDidEnd���\�b�h�����̂悤�ɏ��������܂��B
- (void) loadTimeLineDidEnd: (NSNotification *)notification { URLLoader *loder = (URLLoader *)[notification object]; NSData *xmlData = loder.data; StatusXMLParser *parser = [[[StatusXMLParser alloc] init] autorelease]; self.statuses = [parser parseStatuses:xmlData]; [self.tableView reloadData]; }
�@���O�o�͏����̑����StatusXMLParser���Ăяo���A��͂������ʂ�statuses�ɐݒ肵�Ă��܂��B���̌�View�̍X�V������ǂяo���܂��B
�@����ɁA���L2�̃��\�b�h���ȉ��̂悤�ɕҏW���Ă��������B
// �i14�j - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [self.statuses count]; } //�i15�j - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease]; } int row = [indexPath row]; NSString *name = [[statuses objectAtIndex:row] objectForKey:@"name"]; NSString *text = [[statuses objectAtIndex:row] objectForKey:@"text"]; // ���[�U�[�� cell.textLabel.font = [UIFont systemFontOfSize:16]; cell.textLabel.textColor = [UIColor lightGrayColor]; cell.textLabel.text = name; // �e�L�X�g cell.detailTextLabel.numberOfLines = 0; cell.detailTextLabel.font = [UIFont systemFontOfSize:14]; cell.detailTextLabel.text = text; return cell; }
�@�uNavigation-based Application�v�e���v���[�g������ꂽRootViewController�N���X��UITableViewController�Ƃ����N���X���p�����č���Ă���A���̐e�N���X�����f���Q�[�g���\�b�h���㏑������UITableView�̕\�����R���g���[���ł��܂��B
�@�\���s����ݒ肷�邽�߃��\�b�h�ł��B����́Astatuses�v���p�e�B�̎��f�[�^�̐���Ԃ��Ă��܂��B
�@UITableView��1��1�̃Z�����ǂ̂悤�ɕ\�����邩�̐ݒ���s�����\�b�h�ł��Bstatuses�v���p�e�B����u���[�U�[���v�u�Ԃ₫�v���擾���A���ꂼ�ꃉ�x���ɐݒ肵�Ă��܂��B
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease];
�@��L������initWithStyle �̈����������l��UITableViewCellStyleDefault���� UITableViewCellStyleValue2�ɕύX����̂�Y��Ȃ��悤�ɂ��Ă��������B
�@�����܂ł̕ҏW������������V�~�����[�^�Ŏ��s���Ă݂܂��傤�B
�@���͕\���ł��Ă���悤�ł����A�s�̍������Ⴂ���߁A�Ԃ₫�̓��e���B��Č����Ȃ��Ȃ��Ă��܂��Ă��܂��B�s�̍����߂���ɂ́ARootViewController.m�Ɉȉ��̃��\�b�h��lj����܂��B
- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath { UITableViewCell *cell = [self tableView:self.tableView cellForRowAtIndexPath:indexPath]; CGSize bounds = CGSizeMake(self.tableView.frame.size.width - 150, self.tableView.frame.size.height); CGSize size = [cell.detailTextLabel.text sizeWithFont: cell.detailTextLabel.font constrainedToSize: bounds lineBreakMode: UILineBreakModeCharacterWrap]; return size.height; }
�@�����ł͌Œ�̍����ł͂Ȃ��A�\���̈�̉����ƕ����̒����ɉ������������擾���ĕԂ��悤�ɂ��Ă��܂��B
CGSizeMake(self.tableView.frame.size.width - 150, self.tableView.frame.size.height);
�@��L�̌��łԂ₫�\���̈�̃T�C�Y���擾���Ă��܂��B�����Ɋւ��ẮA�u�e�[�u���̉��� - ���[�U�[���̃e�L�X�g���x���̉����v�Ƃ���̂��]�܂����̂ł��傤���A���̎��_�ł̓��[�U�[���̃e�L�X�g���x���̉��������ݒ�Ȃ��ߑ���̒l�Ƃ���150�Ǝw�肵�Ă��܂��B
�@�������ĎZ�o�����T�C�Y�������ɁAcell.detailTextLabel.text�́usizeWithFont: constrainedToSize: lineBreakMode�v���\�b�h���Ăяo���A�����̒����ɉ������\���T�C�Y���擾���ĕԂ��Ă��܂��B
�@�����̐ݒ肪���������̂ŁA������x�V�~�����[�^���N�����Ă݂܂��傤�B�Z���̍��������e�ɉ����Ē��߂����悤�ɂȂ��Ă��܂��B
�@�����܂ŗ���A���ƈꑧ�Ŋ����ł��B���ɉ�ʏ�ɂԂ₫�̍X�V�{�^����z�u���Ă݂܂��傤�B�����Interface Builder�͎g�킸�ɁA�\�[�X�R�[�h����{�^����ݒ肵�܂��B
�@�ŏ���RootVIewController.m�ɍX�V�p�̃��\�b�h�Areload��lj����܂��B
- (void) reload: (id)sender { [self loadTimeLineByUserName:@"itmedia"]; }
�@���ɁAviewDidLoad���\�b�h��ҏW���A�X�V�{�^���̒lj����A���̍X�V�{�^���������ꂽ��Areload���\�b�h���Ă��悤�ɂ��܂��B���łɁA�i�r�Q�[�V�����o�[�̐F��Twitter�̃C���[�W�J���[�ɕύX���Ă݂܂����B
- (void)viewDidLoad { [super viewDidLoad]; // �i�r�Q�[�V�����o�[�̐F����ۂ��ύX self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.3 green:0.6 blue:0.7 alpha:1.0]; // �X�V�{�^���̒lj� self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh �@target:self action:@selector(reload:)]; [self loadTimeLineByUserName:@"itmedia"]; }
�@�Ō�ɁA�ʐM���ł��邱�Ƃ�\��networkActivityIndicator��lj����܂��BnetworkActivityIndicator�͈ȉ��̂悤�ɁA�X�e�[�^�X�o�[�ɉ�]����摜��\������@�\�ł��B�\�[�X�R�[�h���̃t���O�̐�ւ������ŊȒP�ɕ\���E��\����ݒ�ł��܂�
�@RootVIewController.m ��loadTimeLineByUserName: userName���\�b�h���̒ʐM�J�n���O��networkActivityIndicatorVisible�v���p�e�B���uYES�v�ɂ���ƁA��]�摜���\������܂��B
- (void) loadTimeLineByUserName: (NSString *) userName �c�c�y�ȗ��z�c�c [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; [loder loadFromUrl:url method: @"GET"]; }
�@�ʐM������́AloadTimeLineDidEnd�̐擪��networkActivityIndicatorVisible���uNO�v�ɂ��邱�Ƃʼn�]�摜����\���ƂȂ�܂��B
- (void) loadTimeLineDidEnd: (NSNotification *)notification { [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; �c�c�y�ȗ��z�c�c }
�@�ȏ�ŁATwitter�A�v���̊����ł��B
�@����Љ�����ʐM�ɂ��f�[�^�̎擾�EXML��͂́ATwitter�����łȂ����܂��܂�Web�T�[�r�X��iPhone�^iPad���痘�p����ۂɂ���{�ƂȂ�Z�p�ł��B������p���邱�Ƃō쐬�ł���iPhone�^iPad�A�v���̕��������ƍL����̂ł͂Ȃ��ł��傤���B
�@������A���܂��܂ȋZ�p���Љ�܂��̂ŁA�ǂ������y���݂ɁB
�|�� ����i�������� ���傤���j
�ǂ��ɂł�����E�ƃv���O���}�ł���A�D���Ȍ����Java��Objective-C�B���݂́A�Ɩ��V�X�e���̊J���ɏ]�����A�ڋq�̗v�]�ɓ��X�S�͂ʼn����Ă���B
����A�ق��̈Č����ł�iPhone/Android�A�v���J���ɂ��ϋɓI�Ɏ��g��ł���
Copyright © ITmedia, Inc. All Rights Reserved.