iOSプログラミングの初心者です(ただし、宿題は済ませています... iOSとGoogleのチュートリアルに関する本を読んでいます)。これを行おうとしています:
ユーザーはテキストフィールドにテキストを入力し、絵文字を選択します。
次に、user-input-textをUITableViewCellに追加し、セルをUITableViewに追加します。
問題 :
たとえば、ユーザーがテキストを入力して「幸せな」絵文字を選択するとします。
絵文字とテキストはUITableViewで更新されます。これで問題ありません。
次に、ユーザーは他のテキストを入力し、「悲しい」絵文字を選択します。
問題は次のとおりです。前のセル(幸せな絵文字)の絵文字も「悲しい」に変わります。しかし、前のセルを変更したくありません。
@synthesize table;
@synthesize buttonEmotionHappy;
@synthesize buttonEmotionLaugh;
int myEmoticonNum;
/**
* Called when the button's pressed
* sender : the button which's pressed, consequently invoking this
*/
-(IBAction)buttonPressed:(id)sender {
NSLog(@"Button Pressed");
[self addToInputArray:[textFieldUserInput text]];
[table reloadData];
textFieldUserInput.text = @"";
}
-(IBAction)emotionExpressed:(id)sender {
if (sender == buttonEmotionHappy) {
NSLog(@"Happy emoticon chosen");
myEmoticonNum = 1;
} else if (sender == buttonEmotionSad) {
NSLog(@"Sad emoticon chosen");
myEmoticonNum = 2;
}
}
...
...
...
...
#pragma mark -
#pragma mark Table View Data Source Methods
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.arrayInput count];
}
-(UITableViewCell *) tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:SimpleTableIdentifier];
}
if (myEmotionNum == 1) {
cell.imageView.image = [UIImage imageNamed:@"SmileyHappy.png"];
} else if (myEmotionNum == 2) {
cell.imageView.image = [UIImage imageNamed:@"SmileySad.png"];
}
NSUInteger row = [indexPath row];
cell.textLabel.text = [arrayInput objectAtIndex:row];
return cell;
}
-(void) addToInputArray: (NSString *)userInput {
[arrayInput insertObject:userInput atIndex:0];
NSLog(@"Added %@ to User-Input-Array", userInput);
}
ありがとう、プリヤ