mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 16:28:38 +09:00
Dactyloidae iOS initial commit
This commit is contained in:
parent
daa6179d22
commit
7154a0497e
2123 changed files with 197052 additions and 0 deletions
292
mobile/ios/ThirdParty/SWTableViewCell/ViewController.m
vendored
Normal file
292
mobile/ios/ThirdParty/SWTableViewCell/ViewController.m
vendored
Normal file
|
|
@ -0,0 +1,292 @@
|
|||
//
|
||||
// ViewController.m
|
||||
// SWTableViewCell
|
||||
//
|
||||
// Created by Chris Wendel on 9/10/13.
|
||||
// Copyright (c) 2013 Chris Wendel. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ViewController.h"
|
||||
#import "SWTableViewCell.h"
|
||||
#import "UMTableViewCell.h"
|
||||
|
||||
@interface ViewController () {
|
||||
NSArray *_sections;
|
||||
NSMutableArray *_testArray;
|
||||
}
|
||||
|
||||
@property (nonatomic, weak) IBOutlet UITableView *tableView;
|
||||
@property (nonatomic) BOOL useCustomCells;
|
||||
@property (nonatomic, weak) UIRefreshControl *refreshControl;
|
||||
|
||||
@end
|
||||
|
||||
@implementation ViewController
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
self.navigationItem.leftBarButtonItem = self.editButtonItem;
|
||||
self.tableView.rowHeight = 90;
|
||||
|
||||
self.navigationItem.title = @"Pull to Toggle Cell Type";
|
||||
|
||||
// Setup refresh control for example app
|
||||
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
|
||||
[refreshControl addTarget:self action:@selector(toggleCells:) forControlEvents:UIControlEventValueChanged];
|
||||
refreshControl.tintColor = [UIColor blueColor];
|
||||
|
||||
self.refreshControl = refreshControl;
|
||||
|
||||
// If you set the seperator inset on iOS 6 you get a NSInvalidArgumentException...weird
|
||||
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
|
||||
self.tableView.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0); // Makes the horizontal row seperator stretch the entire length of the table view
|
||||
}
|
||||
|
||||
_sections = [[UILocalizedIndexedCollation currentCollation] sectionIndexTitles];
|
||||
|
||||
_testArray = [[NSMutableArray alloc] init];
|
||||
|
||||
self.useCustomCells = NO;
|
||||
|
||||
for (int i = 0; i < _sections.count; ++i) {
|
||||
[_testArray addObject:[NSMutableArray array]];
|
||||
}
|
||||
|
||||
for (int i = 0; i < 100; ++i) {
|
||||
NSString *string = [NSString stringWithFormat:@"%d", i];
|
||||
[_testArray[i % _sections.count] addObject:string];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark UITableViewDataSource
|
||||
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
||||
return _testArray.count;
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return [_testArray[section] count];
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
NSLog(@"cell selected at index path %ld:%ld", (long)indexPath.section, (long)indexPath.row);
|
||||
NSLog(@"selected cell index path is %@", [self.tableView indexPathForSelectedRow]);
|
||||
|
||||
if (!tableView.isEditing) {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
|
||||
return _sections[section];
|
||||
}
|
||||
|
||||
// Show index titles
|
||||
|
||||
//- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
|
||||
// return [[UILocalizedIndexedCollation currentCollation] sectionIndexTitles];
|
||||
//}
|
||||
//
|
||||
//- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
|
||||
// return [[UILocalizedIndexedCollation currentCollation] sectionForSectionIndexTitleAtIndex:index];
|
||||
//}
|
||||
|
||||
#pragma mark - UIRefreshControl Selector
|
||||
|
||||
- (void)toggleCells:(UIRefreshControl*)refreshControl
|
||||
{
|
||||
[refreshControl beginRefreshing];
|
||||
self.useCustomCells = !self.useCustomCells;
|
||||
if (self.useCustomCells)
|
||||
{
|
||||
self.refreshControl.tintColor = [UIColor yellowColor];
|
||||
}
|
||||
else
|
||||
{
|
||||
self.refreshControl.tintColor = [UIColor blueColor];
|
||||
}
|
||||
[self.tableView reloadData];
|
||||
[refreshControl endRefreshing];
|
||||
}
|
||||
|
||||
#pragma mark - UIScrollViewDelegate
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
|
||||
if (self.useCustomCells)
|
||||
{
|
||||
UMTableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"UMCell" forIndexPath:indexPath];
|
||||
|
||||
// optionally specify a width that each set of utility buttons will share
|
||||
[cell setLeftUtilityButtons:[self leftButtons] WithButtonWidth:32.0f];
|
||||
[cell setRightUtilityButtons:[self rightButtons] WithButtonWidth:58.0f];
|
||||
cell.delegate = self;
|
||||
|
||||
cell.label.text = [NSString stringWithFormat:@"Section: %ld, Seat: %ld", (long)indexPath.section, (long)indexPath.row];
|
||||
|
||||
return cell;
|
||||
}
|
||||
else
|
||||
{
|
||||
static NSString *cellIdentifier = @"Cell";
|
||||
|
||||
SWTableViewCell *cell = (SWTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
|
||||
|
||||
if (cell == nil) {
|
||||
|
||||
cell = [[SWTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
|
||||
|
||||
cell.leftUtilityButtons = [self leftButtons];
|
||||
cell.rightUtilityButtons = [self rightButtons];
|
||||
cell.delegate = self;
|
||||
}
|
||||
|
||||
NSDate *dateObject = _testArray[indexPath.section][indexPath.row];
|
||||
cell.textLabel.text = [dateObject description];
|
||||
cell.textLabel.backgroundColor = [UIColor whiteColor];
|
||||
cell.detailTextLabel.backgroundColor = [UIColor whiteColor];
|
||||
cell.detailTextLabel.text = @"Some detail text";
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
- (NSArray *)rightButtons
|
||||
{
|
||||
NSMutableArray *rightUtilityButtons = [NSMutableArray new];
|
||||
[rightUtilityButtons sw_addUtilityButtonWithColor:
|
||||
[UIColor colorWithRed:0.78f green:0.78f blue:0.8f alpha:1.0]
|
||||
title:@"More"];
|
||||
[rightUtilityButtons sw_addUtilityButtonWithColor:
|
||||
[UIColor colorWithRed:1.0f green:0.231f blue:0.188 alpha:1.0f]
|
||||
title:@"Delete"];
|
||||
|
||||
return rightUtilityButtons;
|
||||
}
|
||||
|
||||
- (NSArray *)leftButtons
|
||||
{
|
||||
NSMutableArray *leftUtilityButtons = [NSMutableArray new];
|
||||
|
||||
[leftUtilityButtons sw_addUtilityButtonWithColor:
|
||||
[UIColor colorWithRed:0.07 green:0.75f blue:0.16f alpha:1.0]
|
||||
icon:[UIImage imageNamed:@"check.png"]];
|
||||
[leftUtilityButtons sw_addUtilityButtonWithColor:
|
||||
[UIColor colorWithRed:1.0f green:1.0f blue:0.35f alpha:1.0]
|
||||
icon:[UIImage imageNamed:@"clock.png"]];
|
||||
[leftUtilityButtons sw_addUtilityButtonWithColor:
|
||||
[UIColor colorWithRed:1.0f green:0.231f blue:0.188f alpha:1.0]
|
||||
icon:[UIImage imageNamed:@"cross.png"]];
|
||||
[leftUtilityButtons sw_addUtilityButtonWithColor:
|
||||
[UIColor colorWithRed:0.55f green:0.27f blue:0.07f alpha:1.0]
|
||||
icon:[UIImage imageNamed:@"list.png"]];
|
||||
|
||||
return leftUtilityButtons;
|
||||
}
|
||||
|
||||
// Set row height on an individual basis
|
||||
|
||||
//- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
|
||||
// return [self rowHeightForIndexPath:indexPath];
|
||||
//}
|
||||
//
|
||||
//- (CGFloat)rowHeightForIndexPath:(NSIndexPath *)indexPath {
|
||||
// return ([indexPath row] * 10) + 60;
|
||||
//}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
// Set background color of cell here if you don't want default white
|
||||
}
|
||||
|
||||
#pragma mark - SWTableViewDelegate
|
||||
|
||||
- (void)swipeableTableViewCell:(SWTableViewCell *)cell scrollingToState:(SWCellState)state
|
||||
{
|
||||
switch (state) {
|
||||
case 0:
|
||||
NSLog(@"utility buttons closed");
|
||||
break;
|
||||
case 1:
|
||||
NSLog(@"left utility buttons open");
|
||||
break;
|
||||
case 2:
|
||||
NSLog(@"right utility buttons open");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerLeftUtilityButtonWithIndex:(NSInteger)index
|
||||
{
|
||||
switch (index) {
|
||||
case 0:
|
||||
NSLog(@"left button 0 was pressed");
|
||||
break;
|
||||
case 1:
|
||||
NSLog(@"left button 1 was pressed");
|
||||
break;
|
||||
case 2:
|
||||
NSLog(@"left button 2 was pressed");
|
||||
break;
|
||||
case 3:
|
||||
NSLog(@"left btton 3 was pressed");
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerRightUtilityButtonWithIndex:(NSInteger)index
|
||||
{
|
||||
switch (index) {
|
||||
case 0:
|
||||
{
|
||||
NSLog(@"More button was pressed");
|
||||
UIAlertView *alertTest = [[UIAlertView alloc] initWithTitle:@"Hello" message:@"More more more" delegate:nil cancelButtonTitle:@"cancel" otherButtonTitles: nil];
|
||||
[alertTest show];
|
||||
|
||||
[cell hideUtilityButtonsAnimated:YES];
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
// Delete button was pressed
|
||||
NSIndexPath *cellIndexPath = [self.tableView indexPathForCell:cell];
|
||||
|
||||
[_testArray[cellIndexPath.section] removeObjectAtIndex:cellIndexPath.row];
|
||||
[self.tableView deleteRowsAtIndexPaths:@[cellIndexPath] withRowAnimation:UITableViewRowAnimationLeft];
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)swipeableTableViewCellShouldHideUtilityButtonsOnSwipe:(SWTableViewCell *)cell
|
||||
{
|
||||
// allow just one cell's utility button to be open at once
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)swipeableTableViewCell:(SWTableViewCell *)cell canSwipeToState:(SWCellState)state
|
||||
{
|
||||
switch (state) {
|
||||
case 1:
|
||||
// set to NO to disable all left utility buttons appearing
|
||||
return YES;
|
||||
break;
|
||||
case 2:
|
||||
// set to NO to disable all right utility buttons appearing
|
||||
return YES;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
Loading…
Add table
Add a link
Reference in a new issue