UIView+TouchHighlighting is a UIView category that provides a generic touch highlighting solution.

The category provides the following enum for highlighting a view.
NS_ENUM(NSInteger, MTHighlightingStyle) {
MTHighlightingStyleNone,
MTHighlightingStyleTransparentMask,
MTHighlightingStyleLightBackground,
MTHighlightingStyleSolidDarkOverlay,
MTHighlightingStyleHollowDarkOverlay,
}
-
MTHighlightingStyleTransparentMaskintroduces a transparent mask layer on touch. -
MTHighlightingStyleLightBackgroundintroduces a light transparent background on touch. -
MTHighlightingStyleSolidDarkOverlayintroduces a rectangular dark overlay layer on touch. -
MTHighlightingStyleHollowDarkOverlayintroduces a dark overlay layer masked with view contents on touch.
Touch highlighting can be enabled on any view by setting touchHighlightingStyle property to desired value as follows.
buttonView.touchHighlightingStyle = MTHighlightingStyleTransparentMask;
To disable touch highlighting, set the property to MTHighlightingStyleNone as follows.
buttonView.touchHighlightingStyle = MTHighlightingStyleNone;
MTCompoundButton can be used to convert a collection of multiple views into a button. Just make the superview inherit from MTCompoundButton and set the touchHighlightingStyle property as explained above. With this, normal views can be made to look and behave like a native UIButton.
Copyright (C) 2016 Muhammad Tayyab Akram
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.