Yarden Eitan 4556a2a71a
[Ripple] Remove the notion of state and its implementation from the ripple touch controller (#6486)
For our Ink successor Ripple, which is currently a Beta component, we want to initially clean the implementation so it doesn't consist any notion of state and be equivalent to our Ink component in terms of API and feature set. Further additions will be reviewed and discussed as follow ups with the team.
2019-01-28 17:49:37 -05:00

63 lines
2.1 KiB
Objective-C

// Copyright 2019-present the Material Components for iOS authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#import <UIKit/UIKit.h>
#import "MaterialRipple.h"
#import "supplemental/RippleExampleSupplemental.h"
@interface RippleTypicalUseExample () <MDCRippleTouchControllerDelegate>
@end
@implementation RippleTypicalUseExample {
NSMutableArray *_rippleTouchControllers;
}
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = UIColor.whiteColor;
UIView *containerView = [[UIView alloc] initWithFrame:self.view.frame];
[self.view addSubview:containerView];
self.containerView = containerView;
CGRect customFrame = CGRectMake(0, 0, 200, 200);
// ExampleShapes is a custom UIView with several subviews of various shapes.
self.surfaces = [[RippleSurfaces alloc] initWithFrame:customFrame];
_rippleTouchControllers = [[NSMutableArray alloc] init];
for (UIView *view in self.surfaces.subviews) {
MDCRippleTouchController *rippleTouchController =
[[MDCRippleTouchController alloc] initWithView:view];
rippleTouchController.delegate = self;
[_rippleTouchControllers addObject:rippleTouchController];
}
[containerView addSubview:self.surfaces];
}
#pragma mark - Private
- (void)rippleTouchController:(MDCRippleTouchController *)rippleTouchController
didProcessRippleView:(MDCRippleView *)rippleView
atTouchLocation:(CGPoint)location {
NSLog(@"RippleTouchController %p did process ripple view: %p at touch location: %@",
rippleTouchController, rippleView, NSStringFromCGPoint(location));
}
@end