Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IOS 7 - Can't set font color of UITextView in custom UITableView cell

I'm stuck on what I thought would be a simple thing to sort out. I have a custom table cell which contains a UITextView object. I want the text in this object to be grey. When I set the color in the interface builder it shows it as grey, but in the simulator it remains black.

Here's a run down of how it's set up:

  1. The application is based on the master/detail template
  2. I created a class that is a subclass of UITableViewCell
  3. I added two properties to the class, an outlet for a UILabel and a UITextView
  4. I altered the default prototype cell by adding a UITextView (it already has a UILabel)
  5. I changed the class of the prototype cell to my custom cell class
  6. I connected the UITextView and UILabel in the cell to the two outlets in my cell class

I updated the MasterViewController to populate my custom cell. When I run the simulator it all works fine in terms of the custom cells displaying the data.

As I mentioned before, the problem comes when I try to change the color of the text in the custom cell's UITextView. If I set it to Light Grey in the interface builder it has no effect in the simulator.

I've included the relevant code snippets and screenshots below. I'm not 100% sure what's relevant to the problem and what isn't, if you need to see something I haven't shown below just ask and i'll provide it.

** EDIT

When I log out the color property of my UITextView it outputs (null). See the MasterViewController.m code below.

Custom cell - NTFYNoteCell.h

#import <UIKit/UIKit.h>  @interface NTFYNoteCell : UITableViewCell  @property (weak, nonatomic) IBOutlet UILabel *titleLabel; @property (weak, nonatomic) IBOutlet UITextView *descriptionText;  @end 

Taken from the MasterViewController.m:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {     NTFYNoteCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"     forIndexPath:indexPath];      NTFYNote *note = _notes[indexPath.row];      cell.titleLabel.text = [note title];     cell.descriptionText.text = [note shortDescription];      NSLog(@"TEXTVIEW: %@", cell.descriptionText);     NSLog(@"TEXT COLOR: %@", cell.descriptionText.textColor); // This outputs (null)      return cell; } 

Debug out from above code:

2014-01-19 19:42:52.001 appname[5050:70b] TEXTVIEW: <UITextView: 0xa1bfe00; frame = (14 26; 273 57); text = 'This is a generic descrip...'; clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x8be0530>; layer = <CALayer: 0x8be1fe0>; contentOffset: {0, 0}> 2014-01-19 19:42:52.001 appname[5050:70b] TEXT COLOR: (null) 2014-01-19 19:42:52.004 appname[5050:70b] TEXTVIEW: <UITextView: 0xa1cd400; frame = (14 26; 273 57); text = 'This is a generic descrip...'; clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x8b8fb40>; layer = <CALayer: 0x8bf5300>; contentOffset: {0, 0}> 2014-01-19 19:42:52.005 appname[5050:70b] TEXT COLOR: (null) 2014-01-19 19:42:52.007 appname[5050:70b] TEXTVIEW: <UITextView: 0xe17e000; frame = (14 26; 273 57); text = 'This is a generic descrip...'; clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0xd857bb0>; layer = <CALayer: 0xd85d610>; contentOffset: {0, 0}> 2014-01-19 19:42:52.007 appname[5050:70b] TEXT COLOR: (null) 2014-01-19 19:42:52.009 appname[5050:70b] TEXTVIEW: <UITextView: 0x99af200; frame = (14 26; 273 57); text = 'This is a generic descrip...'; clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x8a81ea0>; layer = <CALayer: 0x8a580c0>; contentOffset: {0, 0}> 2014-01-19 19:42:52.009 appname[5050:70b] TEXT COLOR: (null) 

UITextView connected to the outlet in my Custom Cell:

UITextView connected to outlet

Font color set to light grey in interface builder:

UITextView font color set to Light Grey

What it looks like in the iPhone simulator:

What the table view looks like in the simulator

like image 910
jd182 Avatar asked Jan 19 '14 19:01

jd182


1 Answers

After working through the problem a bit I went back to Google armed with the new information and found the following Stack Overflow question:

UITextView font is nil

Turns out if you don't check the 'Selectable' checkbox under the UITextView's attributes it doesn't respond to any font changes, including the color.

I checked this box and now it's all working as expected.

Thanks for your help!

like image 55
jd182 Avatar answered Sep 23 '22 15:09

jd182