ios - texto - fondo transparente photoshop cc 2019
UIPageControl-¿Cómo hacer que el fondo transparente? (8)
A partir de Xcode 6.1.1 y iOS 8.1.1, sé que configurar el color de fondo de un objeto UIPageControl al color claro funcionó para mí.
[[self pageControl] setBackgroundColor:[UIColor clearColor]];
Estoy usando UIPageControl
y tratando de hacer el fondo transparente.
UIPageControl *pageControl = [UIPageControl appearance];
pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];
pageControl.currentPageIndicatorTintColor = [UIColor blackColor];
pageControl.backgroundColor = [UIColor blackColor];
¿Alguna sugerencia?
Intentó
pageControl.backgroundColor = [UIColor clearColor];
sin suerte.
============
De acuerdo, como lo mencionaron @ powerj1984 y @daniellarsson, UIPageControl
parece no alterarse con respecto a la posición y el color de fondo.
Así que decidí mover esto a UIViewController y creé un UIPageControl
y
@property (weak, nonatomic) IBOutlet UIPageControl *pageControl;
Y luego traiga esto a la parte superior de mi UIPageViewController
como en viewDidLoad
self.pageControl.numberOfPages = self.pageTitles.count;
[self.view addSubview:_pageControl.viewForBaselineLayout];
Luego actualicé el índice de UIPageControl
en viewControllerBeforeViewController
y viewControllerAfterViewController
NSUInteger index = ((HomePageContentViewController*) viewController).pageIndex;
self.pageControl.currentPage = index;
Aquí está la respuesta con extensión de juan ariza.
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let subViews: NSArray = view.subviews
var scrollView: UIScrollView? = nil
var pageControl: UIPageControl? = nil
for view in subViews {
if view.isKindOfClass(UIScrollView) {
scrollView = view as? UIScrollView
}
else if view.isKindOfClass(UIPageControl) {
pageControl = view as? UIPageControl
pageControl?.pageIndicatorTintColor = UIColor.lightGrayColor()
pageControl?.currentPageIndicatorTintColor = UIColor.blackColor()
pageControl?.backgroundColor = UIColor.clearColor()
}
}
if (scrollView != nil && pageControl != nil) {
scrollView?.frame = view.bounds
view.bringSubviewToFront(pageControl!)
}
}
De acuerdo, como lo mencionaron @ powerj1984 y @daniellarsson, UIPageControl parece no alterarse con respecto a la posición y el color de fondo.
Así que decidí mover esto a UIViewController y creé un UIPageControl y
@property (weak, nonatomic) IBOutlet UIPageControl *pageControl;
Y luego traiga esto a la parte superior de mi UIPageViewController como en viewDidLoad
self.pageControl.numberOfPages = self.pageTitles.count;
[self.view addSubview:_pageControl.viewForBaselineLayout];
Luego actualicé el índice de UIPageControl en viewControllerBeforeViewController y viewControllerAfterViewController
NSUInteger index = ((HomePageContentViewController*) viewController).pageIndex;
self.pageControl.currentPage = index;
Finalmente encontré una solución de trabajo para este problema en Swift. Puedes encontrar el código original y responder en este link .
Requiere que anule la función viewDidLayoutSubviews () para que el control de la página se muestre al frente de la vista.
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let subViews: NSArray = view.subviews
var scrollView: UIScrollView? = nil
var pageControl: UIPageControl? = nil
for view in subViews {
if view.isKindOfClass(UIScrollView) {
scrollView = view as? UIScrollView
}
else if view.isKindOfClass(UIPageControl) {
pageControl = view as? UIPageControl
}
}
if (scrollView != nil && pageControl != nil) {
scrollView?.frame = view.bounds
view.bringSubviewToFront(pageControl!)
}
}
Podría funcionar si establece el color de fondo de UIPageControl
en una imagen de fondo que se vea igual al color de fondo de su VC:
[UIPageControl appearance].backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"pageControllerBackground"]];
Prueba esto:
pageControl = [UIPageControl appearance];
//for change the bullets color
pageControl.pageIndicatorTintColor = [UIColor colorWithRed:(129.0/255) green:(129.0/255) blue:(129.0/255) alpha:1.0];
pageControl.currentPageIndicatorTintColor = [UIColor colorWithRed:(06.0/255) green:(122.0/255) blue:(145.0/255) alpha:1.0];
pageControl.backgroundColor = [UIColor clearColor];
El control de página es transparente por defecto.
Verifique con este código de muestra:
UIPageControl *pageControl = [[UIPageControl alloc] init];
pageControl.frame = CGRectMake(10,10,100,100);
pageControl.numberOfPages = 8;
pageControl.currentPage = 0;
[self.view addSubview:pageControl];
[self.view bringSubviewToFront:pageControl];
[self.view setBackgroundColor:[UIColor blackColor]];
Por favor encuentre las posibilidades de personalización más abajo.
Aparición de controles de página
Puede personalizar la apariencia de un control de página configurando las propiedades que se muestran a continuación.
Para personalizar la apariencia de todos los controles de página en su aplicación, use el proxy de apariencia (por ejemplo, [apariencia UIPageControl]). Para obtener más información sobre los proxies de apariencia, consulte Proxy de apariencia .
Color de tinte
La única forma de personalizar la apariencia de un control de página es mediante la configuración de tintes personalizados para los puntos que representan cada página. El campo Página actual (currentPageIndicatorTintColor) afecta el color del punto que representa la página que se muestra actualmente, y el campo Tint Color (pageIndicatorTintColor) afecta el color de los puntos que representan a todas las demás páginas. El color predeterminado es blanco para el punto de la página actual y gris translúcido para los otros puntos de la página.
Si desea que sus colores personalizados sean translúcidos, debe especificar un color con un valor alfa de menos de 1.0. Esto debe hacerse mediante programación, como en el siguiente ejemplo:
self.myPageControl.currentPageIndicatorTintColor = [UIColor colorWithRed:0.0 green:0.0 blue:1.0 alpha:0.5];
self.myPageControl.pageIndicatorTintColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:0.5];
Ver más detalles en UIPageControl - Developer.Apple documentation
pageControl.backgroundColor = [UIColor clearColor];
esta trabajando pero !! de lo que tiene que configurar el UIPageViewController
de backgroundColor
de UIPageViewController
también en [UIColor clearColor]
y luego! Verá el color de fondo de la vista del contenedor.
- (void)initPageViewController
{
_pageController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll
navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal
options:nil];
UIImageView *imgView= [[UIImageView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
imgView.image = [UIImage imageNamed:@"NiceBGImage"];
[self.view addSubview:imgView];
self.view.backgroundColor = [UIColor clearColor];
_pageController.view.frame = ({
CGRect frame = [[UIScreen mainScreen] bounds];
frame;
});
_pageController.delegate = self;
_pageController.dataSource = self;
_pageController.view.backgroundColor = [UIColor clearColor];
NSArray *controllers = @[_controllers[0]];
[self.pageController setViewControllers:controllers
direction:UIPageViewControllerNavigationDirectionForward
animated:NO
completion:nil];
UIPageControl *pageControl = [UIPageControl appearance];
pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];
pageControl.currentPageIndicatorTintColor = [UIColor whiteColor];
pageControl.backgroundColor = [UIColor clearColor];
pageControl = [UIPageControl appearanceWhenContainedIn:[_pageController class], nil];
[self addChildViewController:_pageController];
[[self view] addSubview:_pageController.view];
[self.pageController didMoveToParentViewController:self];
}