Every repository with this icon (
Every repository with this icon (
| Description: | Three20 is an Objective-C library for iPhone developers edit |
-
3 comments Created 7 months ago by elliotbTTStyledTextTableField in a UITableViewStyleGrouped table view does not have rounded cornersbugxWhen adding a TTStyledTextTableField to a table view that is grouped, and the field is at the top and/or bottom of a group, the cell is rendered with squared corners instead of rounded corners like all other cells.
Comments
-
0 comments Created 7 months ago by mdreelingTTImageView - Landscape pinch amplification as per UIImageViewnoreproxHi Guys, this is my first time creating some issues, so feel free to delete them if they are not appropriate or already fixed... if i can fix these myself or contribute i will do so.
Image scaling in Landscape mode does not 'amplify' pinches as it should. because of the smaller pinch area, a UIImageView amplify's the pinch to give the user more of a chance to zoom in and out.
Currently pinching to zoom in, in landscape mode is troublesome because of the smaller vertical area.
Comments
-
0 comments Created 7 months ago by mdreelingTTImageView - Landscape to Portrait rotation - When zoomed rotates the image Off-AxisbugxWhen rotating an image from portrait to landscape, or vice versa, in zoomed mode, the image is rotated in such as way that what you were looking at may not still be centered when the rotation is complete.
For instance, if you are zoomed on the face of the statue of liberty in portrait, when you rotate to landscape, you will be looking at another part of the statue.
Comments
-
TTPositionAbsolute breaks link surrounding an image
0 comments Created 6 months ago by searls -
0 comments Created 6 months ago by flabrieAdd -initWithCoder: method to TTView class and subclasses to minimally support Interface Builder XIBfeaturerequestxI would be very usefull to add -initWithCoder: method to TTView class and subclasses to minimally support Interface Builder XIB. Without this method, Three20 views can't be used in XIB definition, because some initialization from -initWithFrame: are missing.
For example: I've added minimal XIB / Interface Builder support by adding this method to TTView class:
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super initWithCoder:decoder]) {
} return self; }_style = nil; _layout = nil; // Avoid fixing content mode here, because it will be specified in XIB //self.contentMode = UIViewContentModeRedraw;
And by adding this method to TTTabBar class:
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super initWithCoder:decoder]) {
} return self; }_selectedTabIndex = NSIntegerMax; _tabItems = nil; _tabViews = [[NSMutableArray alloc] init]; _tabStyle = nil; self.style = TTSTYLE(tabBar); self.tabStyle = @"tab:";
Now with these methods, I can add a view of TTTabBar to my NIB / XIB. It shows a blank view in Interface Builder, but it correctly build up at runtime.
Comments
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super initWithCoder:decoder]) {
-
1 comment Created 6 months ago by searlsbugxTTBoxStyle.minSize only concerns height, not width.fixavailablexJust realized while reading TTStyledLayout.m that the CGSize minSize only looks at the height and doesn't access the width, and only does so for TTStyledBlock (meaning div only?).
I'm going to look at modifying this for a span element with a TTBoxStyle and a minimum width. Thoughts?
Comments
Note: I committed a change to my branch to resolve this. Specifying a minimum width on a TTBoxStyle for a span element will now work for me:
http://github.com/searls/three20/tree/48f0dd28b152ef9b7cbbedd44a32bf10ec8b89d4
-
0 comments Created 6 months ago by dougbarthTTURLRequestQueue does not respect Cache-Control headerbugxThe TTURLRequestQueue caches results even if the response includes a Cache-Control header indicates the data should not be cached (no-cache, for instance).
Comments
-
TTMessageController / OS 3.0: Cannot switch fields
0 comments Created 6 months ago by chrismucI'm on 3.0 beta 5 and it seems like the TTMessageController doesn't
work properly: I cannot switch the fields by tapping (only the "next"
key works). Seems like something is messed up with touches / events / responders (or whatever ;-)Comments
-
TTTextEditor needs to overwrite UIResponder *FirstResponder messages.
(BOOL)isFirstResponder { return [_textView isFirstResponder]; }
(BOOL)canBecomeFirstResponder { return [_textView canBecomeFirstResponder]; }
(BOOL)becomeFirstResponder { return [_textView becomeFirstResponder]; }
(BOOL)resignFirstResponder { return [_textView resignFirstResponder]; }
Comments
-
2 comments Created 6 months ago by stevefTTMessageController - does not allow arbitrary recipient into TTMessageRecipientFieldbugxAs it currently stands, TTMessageRecipientField will only add a recipient that's selected from TTMessageController's dataSource. If you try to arbitrarily add a contact, it will delete them from the UITextField once TTMessageRecipientField loses focus.
Comments
-
0 comments Created 5 months ago by klazukaThe hue in UIColorAdditions is in range [0, 360], while UIKit's hue is [0, 1]featurerequestxThe whole HSB/HSV thing is confusing enough on its own, but it's made even worse by the difference in the hue domain for Three20's HSV color factory and UIKit's HSB factory.
// Three20 (hue is in [0, 360]) + (UIColor*)colorWithHue:(CGFloat)h saturation:(CGFloat)s value:(CGFloat)v alpha:(CGFloat)a; // UIKit (hue is in [0.0, 1.0]) + (UIColor *)colorWithHue:(CGFloat)hue saturation:(CGFloat)saturation brightness:(CGFloat)brightness alpha:(CGFloat)alphaIt's made even more confusing because if you look at UIColorAdditions.m in Three20, it uses HSBtoRGB macros (even though the factory method is HSV).
Another point of confusion is Three20's -[UIColor hue] method which returns a value in the range [0.0, 360.0]. So this works with Three20's factory method but not the original UIColor HSB factory method. When 2 things are both called "hue", I would expect them to have the same domain.
Unless there's a really good reason for this, I would rather that UIColorAdditions.m more closely follows UIKit's HSB system.
Comments
-
I'm sure that is not a good title, but it takes a bit to explain.
I have a TTTableView. In the header is a TTTabBar. When tabs are selected, I invalidate the view and thus createDataSource gets called and it creates a different data source for each tab.
The first data source is a TTListDataSource where the items are TTStyledTextTableItems. Then if you select the second tab, you get a different TTListDataSource where the items are just TTTableItems. Everything is fine at this point. But when you select the first tab again, it draws the TTStyledTextLabels incorrectly...they are about one character wide.
After a long time in the debugger, I figured out that on return, it wasn't calling layoutSubviews on the TTStyledTextLabels. I fixed this by adding [_label layoutSubviews] in TTStyledTextTableItemCell. Here is the full method:
- (void)layoutSubviews { [super layoutSubviews]; TTStyledTextTableItem* field = self.object; _label.frame = CGRectOffset(self.contentView.bounds, field.margin.left, field.margin.top); [_label layoutSubviews]; }If this isn't a bug, please let me know what I should be doing instead. Thanks!
Comments
-
0 comments Created 4 months ago by hjonRequest for sender field in TTMessageControllerfeaturerequestxTTMessageController doesn't currently support a field where the user can choose what account or address they'd like to send the message from (similar to Mail.app if there are multiple email accounts setup). It also doesn't currently support a separate data source for those accounts/addresses. Therefore, simply adding a "From:" field doesn't easily fix this, as that field would use the same data source as the recipients (as well as having the same behavior as a recipient field, which is incorrect).
I'd really like to see this functionality added.
Comments
-
0 comments Created 4 months ago by klazuka-[TTLayout layoutSubviews:forView:] is too specificfeaturerequestxTTLayout could be made more useful by changing the forView:(UIView*) part of the selector to forSize:(CGSize).
Right now the UIView* type is too-specific. Both TTFlowLayout and TTGridLayout only depend on the "width" property of the view parameter.
In fact, even the word "Subviews" is too specific. I would prefer if the method had the following signature:
- (CGSize)layoutViews:(NSArray *)view desiredSize:(CGSize)desiredSize;Comments
-
0 comments Created 4 months ago by grinichOffscreen TTTextEditor becomeFirstResponder crashescrashxFor a TTTextEditor added to the dataSource at an offscreen index. This is done after initial load through a method in the respective TTViewController.
[TTTextEditor.textView becomeFirstResponder] doest not bring up the keyboard. When scrolling to this location, an obj_msgSend ccrash occurs where GDB logs "Program received signal: "EXC_BAD_ACCESS".
Comments
-
Suppose that the default placeholder image is 70x70 and your table row height is 80px (variableHeightRows = NO, although even if you set this to YES, the bug would still exist). Next suppose that the TTTableImageItemCell is configured to display an image url for an image that is, say, 100x200 and is not in the image cache.
When the TTTableImageItemCell does layoutSubviews for the first time, it will check to see if the image URL is in the cache. In this case, the image is not in the cache, so it will do the layout based on the dimensions of the placeholder image (70x70 in this example).
Shortly thereafter the TTImageView displays the placeholder image while it sends out an HTTP request for the image resource. At this point the layout is good: the placeholder image fits nicely into the cell. Then, after the image is retrieved from the internet, the image is downsampled to fit inside the existing TTTableImageItemCell frame (70x70 because of the initial placeholder image). At this point, everything is still fine.
Now scroll the cell off the screen a few rows and then scroll back to the cell. A new cell will be dequeued and set to display the image URL, but this time it finds the image in the cache, and follows a different code path through layoutSubviews. The end result is that the TTImageView's frame is now changed to match the dimensions of the cached image (100x200 in this example), and the end result is that the image overflows the cell layout.
You can see this problem in my TTRemoteExamples table view. You can verify that the image cache code path in layoutSubviews is the root of the problem by disabling the image cache in TTRemoteExamples (AppDelegate.m sets the cache's maxPixelCount to a farily large number right now).
As far as I can tell, the correct behavior would be for -[TTTableImageItemCell layoutSubviews] to always set the frame of its TTImageView either to the default placeholder image (if available) or to the default dimensions for the cell. Which is to say that it should not set the TTImageView's frame to match the downloaded image's frame because the downloaded image might be too large, and it is better to just downsample it to fit in the row).
I would fix the bug myself but it seems more like a policy decision that you would be better equiped to decide.
Comments
My first thought is that if you provide a default image, the image should stick to the default image's dimensions even after the image loads. If you don't provide a default image, and the table has fixed row heights, then the image height should be capped at the row height, and the width scaled proportionately. If the table has variable row heights, then it should be the other way around, and the table cell should expand to fit the image. How does that sound to you?
-
2 comments Created 3 months ago by ZoneMRKeyboard resizing broken with tab controllerbugxAfter these changes:
http://github.com/joehewitt/three20/commit/992ff5f9a76478c04fe2992ae7a2b092bbe3161cWhen the keyboard appears in a window which contains a tab bar, the size of the entire keyboard is subtracted from the view. In reality, the view should only shrink to clear the part of the keyboard which appears above the tabstrip.
Comments
-
0 comments Created 3 months ago by MetasyntacticResistance in TTPhotoViewController when zoomed in seems too high OptionsfeaturerequestxIf i'm zoomed in on a photo in the TTPhotoViewController i've noticed
it takes quite a bit of effort to move to the next page. It seems
much more resistive than the iPhone's actual photo viewer.
Could this be tweaked a bit?
Thanks!Comments
-
0 comments Created 3 months ago by MetasyntacticTTPhotoViewController seems to have a problem zooming in *and* rotatingfeaturerequestxHi all,
When i use the TTPhotoViewController to look at a large image, i am
able to zoom in and pan around successfully. However, if i rotate the
device, i notice that the image rotates but i can't pan entirely to
the top or bottom anymore.
Is this a known issue?
I can supply a repro if that would be helpful.Comments
-
0 comments Created 3 months ago by MetasyntacticFlicking when zoomed in in a TTPhotoViewController doesn't seem to decelerate the imagefeaturerequestxIn the normal iphone photo viewer you can flick a zoomed in image and
it will fly across the screen and bounce. This doesn't seem to eb the
case with TTPhotoViewController. When i zoom in and i flick, it seems
to stop immediately after releasing my touch.
Cheers!Comments
-
0 comments Created 3 months ago by saurwadTTStyledTextLabel does not support html special charactersbugxif the text passed to TTStyledTextLabel contains special characters like &rsqou; &lsqou then no text is rendered in the label and it is shown as blank.
Comments
-
0 comments Created 3 months ago by lrx007featurerequestxsuggest moving TTTabBar setSelectedTabIndex delegate call out of if statementfixavailablexCurrently setSelectedTabIndex only calls the delegates tabSelected method if the new tab index is different from the current index.
When explicilty setting the index it's likely the delegate is expecting to update something based on the selected index. On tab initialization, the default selected tab is 0, so if other initialization code determines the start tab to be 0, the delegate is never called.
I'm lazy and would like to rely on the delegate.tabSelected method to tell me what content I need to load, rather than having to check to see if tab 0 is selected and needs to be loaded.
Proposed new setSelectedTabIndex ...
- (void)setSelectedTabIndex:(NSInteger)index {
if (index != selectedTabIndex) {
if (selectedTabIndex != NSIntegerMax) {
self.selectedTabView.selected = NO;}
_selectedTabIndex = index;
if (_selectedTabIndex != NSIntegerMax) { self.selectedTabView.selected = YES; } }
if ([_delegate respondsToSelector:@selector(tabBar:tabSelected:)]) {
[_delegate tabBar:self tabSelected:_selectedTabIndex];} }
Comments
- (void)setSelectedTabIndex:(NSInteger)index {
if (index != selectedTabIndex) {
if (selectedTabIndex != NSIntegerMax) {
-
TTStyledText -- Trouble with newlines after bold/italic/span elements
1 comment Created 3 months ago by ianterrellI'm using TTTableStyledTextItem in a TTTableViewController, initializing them with itemWithText:[TTStyledText textFromXHTML:body] like it does in the catalog. Unfortunately, with some combinations of copy the text gets wonky and doesn't display properly, taking out numbers and lines.
For instance, try adding this to the TTCatalog's StyledTextTableTestController around lines 17-27:
[TTStyledText textFromXHTML:@"bold? If there are several lines above, then some weird stuff happens below with line breaks! Weird! Like an event.\n\nCoffeehouse and Lounge\n\n200 E Main St\n555-222-2323"],Now compare to this:
[TTStyledText textFromXHTML:@"<b>bold?</b> If there are several lines above, then some weird stuff happens below with line breaks! Weird! Like an event.\n\nCoffeehouse and Lounge\n\n200 E Main St\n555-222-2323"],The first one displays properly, but the second one displays strangely.
Comments
mrlegowatch
Fri Aug 21 18:46:04 -0700 2009
| link
I have also found that if bold spans lines (new lines before the ), it messes up the result. This is important to me because I'm trying to minimize the need to massage formatting from other (HTML) formatted text.
-
0 comments Created 3 months ago by mpurlandfixavailablexnavigationBarTintColor and toolbarTintColor issues for TTDefaultSheet and TTWebControllerminorxThere may be more locations that colors are wrong, but these are the locations I've found.
In TTWebController when initializing the toolbar tintColor it should be toolbarTintColor and not navigationBarTintColor.
In TTDefaultStyleSheet methods toolbarButton, toolbarBackButton, toolbarForwardButton, and toolbarRoundButton are using navigationBarTintColor and need to be toolbarTintColor.
Comments
-
0 comments Created 3 months ago by sixtenfeaturerequestxTTURLRequest doesn't work with file URLsfixavailablexI realize that the intention of the URL loading system in Three20 is geared at network resources, but it would be nice if, for testing purposes if nothing else, it were possible to use file URLs as well. The immediate failure seems to be in
TTRequestLoader's method-connection:didReceiveResponse:, which assumes (contrary to the documentation) that the response it receives will necessarily be anNSHTTPURLResponse, rather than the more generalNSURLResponse.Replacing a couple of methods in TTRequestLoader will allow loading of files:
- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response { _response = [response retain]; long long contentLength = NSURLResponseUnknownLength; if ([response isKindOfClass:[NSHTTPURLResponse class]]) { NSDictionary* headers = [(NSHTTPURLResponse*)response allHeaderFields]; contentLength = [[headers objectForKey:@"Content-Length"] intValue]; } else { contentLength = [response expectedContentLength]; } if (contentLength > _queue.maxContentLength && _queue.maxContentLength) { TTLOG(@"MAX CONTENT LENGTH EXCEEDED (%d) %@", contentLength, _URL); [self cancel]; } else if (contentLength == NSURLResponseUnknownLength) { contentLength = 0; } _responseData = [[NSMutableData alloc] initWithCapacity:contentLength]; }and
- (void)connectionDidFinishLoading:(NSURLConnection *)connection { TTNetworkRequestStopped(); if (![_response isKindOfClass:[NSHTTPURLResponse class]] && _response.statusCode == 200) { [_queue performSelector:@selector(loader:didLoadResponse:data:) withObject:self withObject:_response withObject:_responseData]; } else { TTLOG(@" FAILED LOADING (%d) %@", _response.statusCode, _URL); NSError* error = [NSError errorWithDomain:NSURLErrorDomain code:_response.statusCode userInfo:nil]; [_queue performSelector:@selector(loader:didFailLoadWithError:) withObject:self withObject:error]; } TT_RELEASE_SAFELY(_responseData); TT_RELEASE_SAFELY(_connection); }Comments
-
0 comments Created 3 months ago by dshanleyRequest: Custom UILabel for TTTableLinkedItemCell or TTTableViewCellfeaturerequestxCurrently, I don't seem to be able to style the background of a UITableViewCell, because the native UILabel of the UITableViewCell being used by TTTableViewCell and all its derivatives doesn't allow for a transparent / non-opaque background.
For example, if you want a gradient background on a cell, the background of the label portion of the content view will always be white.I would be happy to contribute this change, as I have the modification working here were TTTableLinkedItemCell has a new property _contentLabel who's background can be set to transparent if using a cell background.
Let me know if I'm otherwise missing something!
Thanks
Comments
-
0 comments Created 3 months ago by ianterrellTTNavigator is broken for "More..." controllers in Tab BarbugxIf there are more than 5 controllers in your Tab Bar, the SDK automatically gives you a "More..." view to display your extra controllers. If your controller is in the "More..." section then additional URLs are not properly opened.
For example, I added a food item #1 to the TTNavigatorDemo's TabBarController.m implementation:
- (void)viewDidLoad { [self setTabURLs:[NSArray arrayWithObjects:@"tt://menu/1", @"tt://menu/2", @"tt://menu/3", @"tt://menu/4", @"tt://menu/5", @"tt://food/1", nil]]; }The exact behavior depends on the specific controllers used. TTWebController URLs are broken, notably. Here is a screencast of poor behavior: http://screencast.com/t/9QWyoW9u
Comments
-
0 comments Created 3 months ago by eelnhojTTPhotoViewController shouldn't set UIView.title for each photobugxIn [TTPhotoViewController updateChrome], UIView.title is set to a photo-specific value. This is bad when the TTPhotoViewController is displayed within a UITabBarController, which uses UIView.title in the tabBarItem.
Suggest use of a separate photoTitle field within TTPhotoViewController.
Comments
-
1 comment Created 3 months ago by GurpartapNot able to remove TTURLCache from memorybugxI'm trying to remove an image from memory, cached by TTImageView, and then reload it from server (as the image changes at user's choice). However, they aren't getting off the dict in memory. I tried inspecting _imageCache dictionary and the URL was never removed from it.
A bug? Or I'm missing something?
// Doesn't work; File is not removed from memory with this: [[TTURLCache sharedCache] invalidateURL:picturePath]; // With this one, file is removed from disk, but not from memory again. // Data is refreshed only when app reloads. [[TTURLCache sharedCache] removeURL:picturePath fromDisk:YES];Comments
-
0 comments Created 2 months ago by johnnieraybugxscrollView:didMoveToPageAtIndex: not called at the right timefixavailablexA good explanation of the problem can be found here:
http://groups.google.com/group/three20/browse_thread/thread/dffc9166b8e91dbdComments
-
1 comment Created 2 months ago by Transparentmaskleft and right overflow view missed in TTTabStrip.bugxHi, some of my frinds told me, they could not show left and right overflow view in TTTabStrip.
So, I do some work on it, and finally, I notice some changes between the newest version and branch 96e685b (which one is support 2.x OS).
The difference has been found at the method - (CGSize)addToSize:(CGSize)size context:(TTStyleContext*)context of TTImageStyle in TTStyle.m.
In the old branch, the code is
else if (_contentMode != UIViewContentModeScaleToFill && _contentMode != UIViewContentModeScaleAspectFill && _contentMode != UIViewContentModeScaleAspectFit)and the newest one is
else if (_contentMode == UIViewContentModeScaleToFill)
and the default value of contentMode is UIViewContentModeScaleToFill. So, the size of TTImageStyle is not include the size of image.
I don't know why you change the condition here, so I add one sentence set the contentMode to another one when TTTabStrip create the overflowRight and overflowLeft objects.
The added sentence like:
[(TTImageStyle *)_overflowRight.style setContentMode:UIViewContentModeCenter];
That's all. Sorry for my poor English
Comments
-
TTScrollView.m deviceOrientationDidChange commented out
0 comments Created 2 months ago by jakeriI upgraded to latest version of three20 and found out that deviceOrientationDidChange is commented out in TTScrollView.m.
My TTScrollView stopped adjusting to landscape-view.
Uncommenting these rows made everything work again.Should this method be commented out or is it a bug?
Comments
-
Previously I'd been using the following method to delete rows from tables. I don't see anything similar in the Three20 classes and the method below won't even get called.
- (void)tableView:(UITableView )tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath )indexPath {
//do work }
Comments
- (void)tableView:(UITableView )tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
-
1 comment Created 2 months ago by richcollinsLong links don't wrap properly in TTStyledTextLabelsbugxThe line breaks still aren't working properly for long links. The link is truncated (usually at the /), but space is still allocated for the wrapped portion of the link. If you touch down on the link, the wrapped area is highlighted, but there is no text in it.
CGRect screenBounds = [[UIScreen mainScreen] bounds]; [self setWindow:[[[UIWindow alloc] initWithFrame:screenBounds] autorelease]]; UIView *v = [UIView instantiate]; [v setFrame:[window frame]]; [v setBackgroundColor:[UIColor whiteColor]]; [window addSubview:v]; TTStyledTextLabel *label = [[[TTStyledTextLabel alloc] initWithFrame:CGRectZero] autorelease]; [label setBackgroundColor:[UIColor colorWithWhite:.9 alpha:1.0]]; [label setWidth:320]; [label setContentInset:UIEdgeInsetsMake(4, 4, 4, 4)]; NSString *xhtml = @"Long links get truncated: http://foo.com/ajdsajdhasjdhasjhsdhasdhasdlkahsdkhaslkdshdklashdkashdksah"; [label setText:[TTStyledText textFromXHTML:xhtml lineBreaks:YES URLs:YES]]; [label sizeToFit]; [v addSubview:label]; CGRect labelBounds = [label bounds]; [label setFrame:CGRectMake(0, screenBounds.size.height / 2 - labelBounds.size.height / 2, labelBounds.size.width, labelBounds.size.height)]; [window makeKeyAndVisible];Comments
richcollins
Mon Sep 21 14:52:05 -0700 2009
| link
Actually, I see that this problem is present in the Facebook app as well. Just noticed a link in a news feed item that exhibits the errant behavior.
-
0 comments Created 2 months ago by ehrenkretbugxfixavailablexTTStyledLayout adds descender height in breakLine method to height of TTStyledTextFrames which already include descender heightnoreproxConsider a TTStyledTextLabel containing the following XHTML snippet:
Word1 Word2 Word3 Word4 Word5 <b>Word6 Word7</b> Word8 Word9 Word10.If that line wraps in such a way as to produce something like the following:
Word1 Word2 Word3 Word4
Word5 Word6 Word7 Word8
Word9 Word10then Word5 is raised above the baseline by the height of the descender element of the font face.
Proposed Patch:
--- src/TTStyledLayout.m | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/src/TTStyledLayout.m b/src/TTStyledLayout.m index 0b42e8a..f52250b 100644 --- a/src/TTStyledLayout.m +++ b/src/TTStyledLayout.m @@ -218,7 +218,13 @@ // XXXjoe Support top, bottom, and center alignment also if (frame.height < _lineHeight) { UIFont* font = frame.font ? frame.font : _font; - [self offsetFrame:frame by:(_lineHeight - (frame.height - font.descender))]; + CGFloat adjustmentOffset = _lineHeight - frame.height; + + // Text frame heights already include the descender + if (![frame isKindOfClass:[TTStyledTextFrame class]]) { + adjustmentOffset += font.descender; + } + [self offsetFrame:frame by:adjustmentOffset]; } frame = frame.nextFrame; } --Comments
-
0 comments Created 2 months ago by ItaloFSSbugxTTURLCache removeURL not removingfixavailablexThe removeURL is converting the specified URL into a key and using that key to remove the cache info. The problem is that the cached images are stored by their URL and not the URL KEY. So, I added the two line of code below to address this issue. I'm not sure what uses the URL KEY, so I just added the lines, not changing anything else.
[imageSortedList removeObject:URL]; [imageCache removeObjectForKey:URL];
Comments
-
Given the asynchronous nature of (remote) image loading any TTTableMessageItemCell cells that are reused display the 'old' (reused) image until the new image loads. This is confusing (especially on a slow link where images take a while to load.)
This resolves it here, but I think there maybe be need to do this for a number of different cells (i.e. I've not traced every one through to see if they have similar issues.)
(void)prepareForReuse { [super prepareForReuse];
_imageView2.image = nil; }
Comments
Okay, at least TTTableTextItemCell needs it's textLabel zapped also.
(void)prepareForReuse{ [super prepareForReuse];
self.imageView.image = nil; self.detailTextLabel.text = nil; self.textLabel.text = nil; }
This is a recurring problem in a number of the cells. The problem stems from a larger design problem in which most cell ui elements are only modified and created if their mate property exists.
This problem exists in the following cells:
TTTableTextItemCell
TTTableMessageItemCell
TTTableSubtitleItemCell
TTTableImageItemCell -
0 comments Created about 1 month ago by BrindavoinebugxTTImageStyle and default currentModefixavailablexTTImageStyle return always a CGSizeZero with default UIViewContentModeScaleToFill.
Fix this, replacing (TTStyle.m, line 786):
contentMode != UIViewContentModeScaleToFill
by :
contentMode == UIViewContentModeScaleToFillComments
-
assume you have a controller that derives from TTTableViewController
assume you have a datasource that derives from TTListDataSource
and assume you added a TTTableMoreButton on your datasource to add more items (at the bottom of the table) using - (id)tableView:(UITableView)tableView objectForRowAtIndexPath:(NSIndexPath)indexPath;The goal is to catch the user selection on the controller.
According to the Three20 source code you should override this on your controller.
- (void)didSelectObject:(id)object atIndexPath:(NSIndexPath*)indexPath;it is impossible to catch the click on a number of situations mainly when the user clicks the TTTableMoreButton button.
The problem is that the default delegate identifies that you clicked on the TTTableMoreButton button and calls the model to load more items. when the model loads the datasource is being populated with more items and the cell is no longer of type TTTableMoreButton.
IMHO the call to [_controller didSelectObject:object atIndexPath:indexPath];
in - (void)tableView:(UITableView)tableView didSelectRowAtIndexPath:(NSIndexPath)indexPath; on TTTableViewDelegate happens too late.what happens when you try to investigate the cell that was clicked is that you get your own content cell (depends on what you used to populate the table).
Any ideas how I can simply identify what kind of cell was clicked without implementing a custom TTTableViewDelegate ?Comments
-
1 comment Created 25 days ago by fjtdichosaEmpty table views after memory warning (Oct 17 2009 code)noreproxI have an iPhone app with a Tab Bar Controller as the main interface. Some tabs uses TTTableViewController. I've observed that if I receive a MEMORY WARNING, the table views disappears. I saw a closed issue of the same problem, but that was closed 3 months ago. I'm seeing this problem using the current code (dated Oct 28, 2009).
Any suggestions?
Comments
-
0 comments Created 22 days ago by stevemckenziebugxTTImageView + TTGridLayoutnoreproxI have a view that displays a bunch of views in a gridlayout. 1 view is a TTImageView.
I am having a weird issue with only the imageView appearing on first request. Once it has been cached, I never see it again?
Other issues im experiencing:
- GridLayout is not accounting for the size of the image (guessing since its not loaded yet but i never even see my default image)
- TTImageView is never respecting the frame i gave it. I told it to NOT autoresize to the image size.
I'm thinking im doing something wrong so maybe someone can point me to something?
Comments
-
0 comments Created 16 days ago by bogormanUITextAlignment not implemented on TTStyledTextLabelfeaturerequestxI was just wondering if anyone had and plans to do this. It seems like it should be relatively straightforward to implement or is there some other issue i am not aware of. Cheers.
Comments
-
0 comments Created 15 days ago by tewhaTTLauncherItem.h needs newline at end (GCC_WARN_ABOUT_MISSING_NEWLINE)minorxTTLauncherItem.h is missing a newline from the end of the file. This causes a compiler warning if GCC_WARN_ABOUT_MISSING_NEWLINE is turned on, and a compiler error if warnings are being treated as errors.
Comments
-
0 comments Created 15 days ago by uprise78setTableBannerView:animated: frame gets set to the overlayView's framebugxWhen the bannerView gets added to the overlayView the overlayView's frame is set to the full size of the tableView. The frame then gets passed on to the tableBannerView making the tableBannerView be full screen when it should only be 22 pixels high.
Comments
-
1 comment Created 7 days ago by leonard83bugxTTTabStrip Overflow images not showing?fixavailablexHi, do you have to enable anything to show the TTTabStrip Overflow images? They don't seem to show.
Comments
Either pull my fork (http://github.com/uprise78/three20-P31) or check out the commit from yesterday for a fix.
-
1 comment Created 3 days ago by eastmediapreviousViewController overwriting private SDK call?appstorexDevelopers at RogueSheep have stated an app was rejected for calling previousViewController, even though three20's implementation does not appear to be making private calls. It just happens to have the same name as a private SDK call. I posted about this issue here:
http://groups.google.com/group/three20/browse_thread/thread/bcae33d8108ea573
Here is RogueSheep's original post:
http://blog.roguesheep.com/2009/11/19/warning-love-hurts/
What is the opinion on this issue?
Thanks,
MattComments
My opinion is here:
http://blog.planetaryscale.com/2009/11/20/on-the-postage-rejectionShort summary: It's a bug on Apple's side.
-
README.mdown references git://github.com/joehewitt/three20.git instead of git://github.com/facebook/three20.git.
Comments
-
1 comment Created about 20 hours ago by dreamComeTrueTTStyledTextLabel: link capitalizationbugxDevice: iPod
SDK: 3.0I'm using TTStyledTextLabel inside the UITableViewCell.
Show some text with link/links inside. If user tap on the link the application should open it in Safari.
- set label text: "Http://www.google.com http://www.google.com Http://www.google.com/ http://www.google.com/" (sic!)
- try to tap on each link.
- result:
Http://www.google.com - opened
http://www.google.com - selected but not opened
Http://www.google.com/ - opened
http://www.google.com/ - selected but not opened
Comments
dreamComeTrue
Mon Nov 23 03:39:49 -0800 2009
| link
Console output in debug mode:
OPENING URL http://www.google.com
OPENING URL http://www.google.com/
- set label text: "Http://www.google.com http://www.google.com Http://www.google.com/ http://www.google.com/" (sic!)
- appstore▾
- bug▾
- crash▾
- featurerequest▾
- fixavailable▾
- leak▾
- minor▾
- norepro▾
- Apply to Selection
-
Change Color…
Preview:preview
- Rename…
- Delete












I noticed this too -- I think the problem is that the height of the cell is not being correctly calculated.
sounds like we just need to set the background color of the label to clearColor
I have fixed this in the following commit - http://github.com/elliotb/three20/commit/e6afc8f7eb06f95921b63a39020dbda3ddb48bce