It's actually cleaner to create your custom views in the designated initializer, as Bill showed below. The only thing missing is that if you correctly set the custom view's autoresizingMask property, the view will resize as the cell resizes, rather than you needing to manually change it in -layoutSubviews.
On Aug 4, 2010, at 1:30 AM, sebi wrote: > hello, > > thanks for your reply. I planned it to do like you suggested, but it seems to > work with the built-in label when I make sure to call super in > layoutSubviews. > would you still recommend to use my own label? > > thanks and regards, > sebastian mecklenburg > > On 04.08.2010, at 03:40, Bill Garrison wrote: > >> Sebastian, >> >> If you doing a UITableViewCell subclass, you'll have issues using the >> built-in textLabel property if you want it to be positioned somewhere other >> than the locations provided by the built-in styles. >> >> Your best bet is to add your own UILabel to the subclass' contentView. >> >> @interface MyTableViewCell : UITableViewCell { >> UILabel *myOwnTextLabel; >> } >> @property (nonatomic, retain) UILabel *myOwnTextLabel; >> @end >> >> @implementation MyTableViewCell >> - (id)initWithStyle:(UITableViewCellStyle)style >> reuseIdentifier:(NSString*)reuseIdentifier { >> self = [super initWithStyle:style reuseIdentifier: reuseIdentifier]; >> if (self) { >> CGRect r = self.contentView.bounds; >> r.origin.x = 30; >> r.origin.y = 5; >> r.size.width -= 50; >> r.size.height -= 10; >> myOwnTextLabel = [[UILabel alloc] initWithFrame:r]; >> >> [self.contentView addSubview: myOwnTextLabel]; >> // Add your own UILabel to the content view >> // You'll ignore the built-in textLabel property and use your >> own, myOwnTextLabel. >> } >> return self; >> } >> >> - (void) dealloc { >> [myOwnTextLabel release]; myOwnTextLabel = nil; >> [super dealloc]; >> } >> >> - (void) setText: (NSString *)text { >> myOwnTextLabel.text = text; >> } >> @end >> >> On Aug 3, 2010, at 1:24 PM, sebi wrote: >> >>> Hello, >>> >>> In my project (iPad) I use a UITableViewCell subclass. The problem is, that >>> the built in textLabel doesn't show the text. >>> Here is some test code: >>> >>> -(void)setText:(NSString*)text { >>> CGRect r; >>> r.origin.x = 30; >>> r.origin.y = 5; >>> r.size.width = self.bounds.size.width - 50; >>> r.size.height = self.bounds.size.height - 10; >>> // self.textLabel.frame = r; >>> // self.textLabel.text = @"xxx"; >>> UILabel* textLabel = [[UILabel alloc] initWithFrame:r]; >>> textLabel.text = @"xxx"; >>> [self addSubview:textLabel]; >>> [textLabel release]; >>> } >>> >>> when I uncomment the two lines and comment out the last three lines it >>> doesn't work, no text visible. The _textLabel member of the UITableViewCell >>> superclass is not nil and its parameters are set correctly. >>> I mean, it works now (I have to make my textLabel a member and add it only >>> once as a subview of course) but I would still be interested what I am >>> doing wrong. >>> >>> Thanks and regards, >>> Sebastian Mecklenburg_______________________________________________ >> >> > > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/cocoa-dev/punster%40mac.com > > This email sent to puns...@mac.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com