iOS 4��SDK�ŁATwitter���g����iPhone�A�v��������FSDK�Ŏn�߂�iPad/iPhone�A�v���J���̊����i4�j�i4/4 �y�[�W�j

» 2010�N09��28�� 00��00�� ���J
[�|�������C������Ѓr�[�u���C�N�V�X�e���Y]
�O�̃y�[�W�� 1|2|3|4 �@�@�@�@�@�@

�f�[�^��UITableView�Ɉꗗ�\������

�@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

  • �i14�jtableView: numberOfRowsInSection

�@�\���s����ݒ肷�邽�߃��\�b�h�ł��B����́Astatuses�v���p�e�B�̎��ƒf�[�^�̐���Ԃ��Ă��܂��B

  • �i15�j tableView: cellForRowAtIndexPath

�@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

�i�r�Q�[�V�����o�[�ɍX�V�{�^����lj�����

�@�����܂ŗ���΁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"];
}

networkActivityIndicator�ŒʐM���ł��邱�Ƃ�m�点��

�@�Ō�Ɂ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

Web�T�[�r�X��iPhone�^iPad���痘�p����ۂ̊�{

�@����Љ���񓯊��ʐ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

�M�ҏЉ�

������Ѓr�[�u���C�N�V�X�e���Y

�|�� ����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��ł���



�O�̃y�[�W�� 1|2|3|4 �@�@�@�@�@�@

Copyright © ITmedia, Inc. All Rights Reserved.

'; this.insertTarget = document.querySelector('#cmsBody .subscription') || document.querySelector('#cmsBody .inner'); }; BodyAdIMSWithCCE.prototype = Object.create(BodyAdContent.prototype); BodyAdIMSWithCCE.prototype.activate = function () { refreshGam('InArtSpecialLink'); } // global reference window.itm = itm; //entry point BodyAdEventBase.polyfill(); const bodyAdManager = BodyAdManager.getInstance(); bodyAdManager.addEventListener(BodyAdManager.EVENTS.READY, function (ev) { bodyAdManager.loadAdvertise(); }); bodyAdManager.init(); })();
�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B