Important facts about commercial licenses

  • Licenses are perpetual. They do not expire and do not need to be renewed.
  • Licenses can be upgraded. You can upgrade to a more expensive license later paying only the difference in cost.
  • Pay attention to the distribution type - Hosted (sites / servers), binary (applications) or source (includes all the others). Choose according to your needs (more below).
  • All licenses allow commercial use unless otherwise indicated.
  • Read the full license by clicking on the icon.
  • Read more about licenses in our handy license guide.
Free

MIT license

The MIT license is an
open-source license.
$5

Support License

Unlimited projects Source and binary distribution 1 year support
You need to log-in or create an account
  • Create an account
  • Log-in
  • Please use your real name.
  • Account activation link will be sent to this address.
  • Minimum 8 characters

Clicking this button confirms you read and agreed to the terms of use and privacy policy.

(5 ratings)

Horizontal List View

Horizontal List View
Developed by Jeremy Tregunna, Released May 7, 2012

JTrackView is a horizontal list view UI component similar in nature to a UITableView which allows for scrolling a list of items in a horizontal manner rather than a vertical manner such as with a UITableView

Objective-C

Tags: objective-c , row , tableview , uikit

JTrackView is a UI component similar in nature to a UITableView which allows for scrolling a list of items in a horizontal manner rather than a vertical manner such as with a UITableView. It is intended to be very lightweight, and performance has been measured on an iPhone 4 at a worst case of 55 fps with a non-trivial set of opaque subviews. In other words, it scrolls like butter.

Requirements

This view uses ARC, and weak links, so it will work on iOS 4.x, but you'll need PLWeakCompatibility, or iOS 5.x.

Using

To use JTrackView, add these files to your project, ensure the JTrackView.m and JTrackViewCell.m files are in your compile build phase.

In your view controller, add a reference to the trackView, connect it to a UIScrollView in a nib or storyboard (remembering to change the class name to JTrackView) as an outlet (should you choose to do it this way), or create it manually by calling -initWithFrame:. Set the data source on the trackview to your controller, and implement JTrackViewDelegate however you need to.

For instance, your implementation may look like this:

@interface FantasticViewController : UIViewController
@property (nonatomic, strong) IBOutlet JTrackView* trackView;
@end

@implementation FantasticViewController

@synthesize trackView = _trackView;

/* ... */

- (void)numberOfPagesInTrackView:(JTrackView*)trackView
{
    return 5;
}

- (CGFloat)pageWidthInTrackView:(JTrackView*)trackView;
{
    return CGRectGetWidth(self.trackView.bounds);
}

- (JTrackViewCell*)trackView:(JTrackView*)trackView cellForPageAtIndex:(NSUInteger)index
{
    static NSString* identifier = @"TrackCell";
    // When you dequeue a cell, you will always, always get back a good object you can use,
    // even if there are no cells for recycling available, we'll create one for you.
    JTrackViewCell* cell = [trackView dequeueReusableCellWithIdentifier:identifier];

    /* do your stuff */

    return cell;
}

/* ... */

@end

You should now have 5 pages of cells.

View all 3 reviews »

User Reviews

  • Haiko Schol 6 months ago
    Easy to integrate, does what it says and it's free. What's not to like? (I haven't looked at the code, so ignore that rating.)
    Flag
    Was this helpful? Yes No
  • 1 of 1 people found this review helpful James McClymonds 2 months ago
    :)
    Flag
    Was this helpful? Yes No
  • Erich Phillips 10 months ago
    Very easy to use, and very flexible
    Flag
    Was this helpful? Yes No

Questions & Comments


Or enter your name and Email
No comments have been posted yet.
You must be logged-in to vote. Log-in to your account or register now.