mirror of
https://github.com/arichornlover/uYouEnhanced.git
synced 2026-04-21 07:41:59 +00:00
Update YTPivotBarReorder.m
This commit is contained in:
parent
7f632008c5
commit
093419e360
1 changed files with 46 additions and 40 deletions
|
|
@ -10,6 +10,8 @@
|
||||||
|
|
||||||
@property (strong, nonatomic) UICollectionView *collectionView;
|
@property (strong, nonatomic) UICollectionView *collectionView;
|
||||||
@property (strong, nonatomic) NSMutableArray *pivotBarItems;
|
@property (strong, nonatomic) NSMutableArray *pivotBarItems;
|
||||||
|
@property (strong, nonatomic) UIButton *indexButton;
|
||||||
|
@property (strong, nonatomic) NSMutableArray *indexOptions;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|
@ -17,7 +19,7 @@
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
- (void)viewDidLoad {
|
||||||
[super viewDidLoad];
|
[super viewDidLoad];
|
||||||
self.title = @"Reorder Pivot Bar Icons";
|
self.title = @"Reorder Notifications Bar";
|
||||||
self.view.backgroundColor = [UIColor colorWithRed:0.129 green:0.129 blue:0.129 alpha:1.0];
|
self.view.backgroundColor = [UIColor colorWithRed:0.129 green:0.129 blue:0.129 alpha:1.0];
|
||||||
|
|
||||||
UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithTitle:@"Close" style:UIBarButtonItemStyleDone target:self action:@selector(closeController)];
|
UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithTitle:@"Close" style:UIBarButtonItemStyleDone target:self action:@selector(closeController)];
|
||||||
|
|
@ -30,14 +32,17 @@
|
||||||
self.collectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];
|
self.collectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];
|
||||||
self.collectionView.delegate = self;
|
self.collectionView.delegate = self;
|
||||||
self.collectionView.dataSource = self;
|
self.collectionView.dataSource = self;
|
||||||
self.collectionView.dragDelegate = self;
|
|
||||||
self.collectionView.dropDelegate = self;
|
|
||||||
self.collectionView.dragInteractionEnabled = YES;
|
|
||||||
self.collectionView.backgroundColor = [UIColor colorWithRed:0.129 green:0.129 blue:0.129 alpha:1.0];
|
self.collectionView.backgroundColor = [UIColor colorWithRed:0.129 green:0.129 blue:0.129 alpha:1.0];
|
||||||
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Cell"];
|
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Cell"];
|
||||||
[self.view addSubview:self.collectionView];
|
[self.view addSubview:self.collectionView];
|
||||||
|
|
||||||
[self loadActivePivotTabs];
|
[self loadActivePivotTabs];
|
||||||
|
|
||||||
|
self.indexButton = [UIButton buttonWithType:UIButtonTypeSystem];
|
||||||
|
self.indexButton.frame = CGRectMake(10, 80, 300, 40);
|
||||||
|
[self.indexButton setTitle:@"Select Index" forState:UIControlStateNormal];
|
||||||
|
[self.indexButton addTarget:self action:@selector(showIndexOptions) forControlEvents:UIControlEventTouchUpInside];
|
||||||
|
[self.view addSubview:self.indexButton];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)closeController {
|
- (void)closeController {
|
||||||
|
|
@ -59,6 +64,40 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
self.pivotBarItems = activeTabs;
|
self.pivotBarItems = activeTabs;
|
||||||
|
self.indexOptions = [NSMutableArray array];
|
||||||
|
for (int i = 1; i <= self.pivotBarItems.count; i++) {
|
||||||
|
[self.indexOptions addObject:[NSString stringWithFormat:@"%d", i]];
|
||||||
|
}
|
||||||
|
[self.collectionView reloadData];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)showIndexOptions {
|
||||||
|
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Select Index"
|
||||||
|
message:nil
|
||||||
|
preferredStyle:UIAlertControllerStyleActionSheet];
|
||||||
|
for (NSString *indexOption in self.indexOptions) {
|
||||||
|
UIAlertAction *action = [UIAlertAction actionWithTitle:indexOption
|
||||||
|
style:UIAlertActionStyleDefault
|
||||||
|
handler:^(UIAlertAction *action) {
|
||||||
|
[self.indexButton setTitle:[NSString stringWithFormat:@"Selected Index: %@", indexOption] forState:UIControlStateNormal];
|
||||||
|
[self reorderPivotTabToIndex:[indexOption intValue] - 1];
|
||||||
|
}];
|
||||||
|
[alert addAction:action];
|
||||||
|
}
|
||||||
|
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel"
|
||||||
|
style:UIAlertActionStyleCancel
|
||||||
|
handler:nil];
|
||||||
|
[alert addAction:cancelAction];
|
||||||
|
|
||||||
|
[self presentViewController:alert animated:YES completion:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)reorderPivotTabToIndex:(NSUInteger)index {
|
||||||
|
if (index >= self.pivotBarItems.count) return;
|
||||||
|
|
||||||
|
YTIPivotBarItemRenderer *selectedItem = self.pivotBarItems[0]; // Assuming the first item is the one to reorder
|
||||||
|
[self.pivotBarItems removeObjectAtIndex:0];
|
||||||
|
[self.pivotBarItems insertObject:selectedItem atIndex:index];
|
||||||
[self.collectionView reloadData];
|
[self.collectionView reloadData];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -70,48 +109,15 @@
|
||||||
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
|
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
|
||||||
YTIPivotBarItemRenderer *itemRenderer = self.pivotBarItems[indexPath.row];
|
YTIPivotBarItemRenderer *itemRenderer = self.pivotBarItems[indexPath.row];
|
||||||
|
|
||||||
UILabel *indexLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, cell.contentView.bounds.size.width, cell.contentView.bounds.size.height/2)];
|
UILabel *indexLabel = [[UILabel alloc] initWithFrame:cell.contentView.bounds];
|
||||||
indexLabel.text = [NSString stringWithFormat:@"%ld", (long)indexPath.row];
|
indexLabel.text = [NSString stringWithFormat:@"%ld", (long)indexPath.row + 1];
|
||||||
indexLabel.textAlignment = NSTextAlignmentCenter;
|
indexLabel.textAlignment = NSTextAlignmentCenter;
|
||||||
indexLabel.textColor = [UIColor whiteColor];
|
indexLabel.textColor = [UIColor whiteColor];
|
||||||
|
|
||||||
UILabel *identifierLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, cell.contentView.bounds.size.height/2, cell.contentView.bounds.size.width, cell.contentView.bounds.size.height/2)];
|
|
||||||
identifierLabel.text = itemRenderer.pivotIdentifier;
|
|
||||||
identifierLabel.textAlignment = NSTextAlignmentCenter;
|
|
||||||
identifierLabel.textColor = [UIColor whiteColor];
|
|
||||||
identifierLabel.font = [UIFont systemFontOfSize:10];
|
|
||||||
|
|
||||||
[cell.contentView addSubview:indexLabel];
|
[cell.contentView addSubview:indexLabel];
|
||||||
[cell.contentView addSubview:identifierLabel];
|
|
||||||
return cell;
|
return cell;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSArray<UIDragItem *> *)collectionView:(UICollectionView *)collectionView itemsForBeginningDragSession:(id<UIDragSession>)session atIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
NSItemProvider *itemProvider = [[NSItemProvider alloc] initWithObject:self.pivotBarItems[indexPath.row]];
|
|
||||||
UIDragItem *dragItem = [[UIDragItem alloc] initWithItemProvider:itemProvider];
|
|
||||||
dragItem.localObject = self.pivotBarItems[indexPath.row];
|
|
||||||
return @[dragItem];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)collectionView:(UICollectionView *)collectionView performDropWithCoordinator:(id<UICollectionViewDropCoordinator>)coordinator {
|
|
||||||
NSIndexPath *destinationIndexPath = coordinator.destinationIndexPath;
|
|
||||||
if (!destinationIndexPath) {
|
|
||||||
destinationIndexPath = [NSIndexPath indexPathForRow:self.pivotBarItems.count - 1 inSection:0];
|
|
||||||
}
|
|
||||||
|
|
||||||
for (id<UICollectionViewDropItem> dropItem in coordinator.items) {
|
|
||||||
NSIndexPath *sourceIndexPath = dropItem.sourceIndexPath;
|
|
||||||
if (sourceIndexPath) {
|
|
||||||
[collectionView performBatchUpdates:^{
|
|
||||||
id item = self.pivotBarItems[sourceIndexPath.row];
|
|
||||||
[self.pivotBarItems removeObjectAtIndex:sourceIndexPath.row];
|
|
||||||
[self.pivotBarItems insertObject:item atIndex:destinationIndexPath.row];
|
|
||||||
[collectionView moveItemAtIndexPath:sourceIndexPath toIndexPath:destinationIndexPath];
|
|
||||||
} completion:nil];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (YTIGuideResponse *)getGuideResponse {
|
- (YTIGuideResponse *)getGuideResponse {
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue