小编Pat*_*ick的帖子

UIBcrollview与UIButtons - 如何重新创建跳板?

我正在尝试在我的应用程序中创建类似跳板的界面.我正在尝试将UIButtons添加到UIScrollView中.我正在运行的问题是按钮没有通过任何触摸到UIScrollView - 如果我试图轻弹/滑动并碰巧按下按钮它没有注册UIScrollView,但如果我轻弹之间的空间按钮它会工作.如果我触摸按钮,按钮会单击/工作.

是否存在强制按钮将触摸事件发送到其父级(超级视图)的属性或设置?在添加UIScrollView之前,是否需要将按钮添加到其他内容?

这是我的代码:

//init scrolling area
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 480, 480)];
scrollView.contentSize = CGSizeMake(480, 1000);
scrollView.bounces = NO;
scrollView.delaysContentTouches = NO;

//create background image
UIImageView *rowsBackground = [[UIImageView alloc] initWithImage:[self scaleAndRotateImage:[UIImage imageNamed:@"mylongbackground.png"]]];
rowsBackground.userInteractionEnabled = YES;

//create button
UIButton *btn = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
btn.frame = CGRectMake(100, 850, 150, 150);
btn.bounds = CGRectMake(0, 0, 150.0, 150.0);
[btn setImage:[self scaleAndRotateImage:[UIImage imageNamed:@"basicbutton.png"]] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];

//add "stuff" to scrolling area
[scrollView addSubview:rowsBackground];
[scrollView addSubview:btn];

//add …
Run Code Online (Sandbox Code Playgroud)

objective-c uibutton uiscrollview programmatically-created

34
推荐指数
3
解决办法
4万
查看次数

使用CGImageMaskCreate创建蒙版全黑(iphone)

我正在尝试从两个现有图像的合成中创建一个图像蒙版.

首先,我首先创建一个复合材料,它包含一个小图像作为遮罩图像,一个较大的图像与背景相同:

UIImage * BaseTextureImage = [UIImage imageNamed:@"background.png"];
UIImage * MaskImage = [UIImage imageNamed:@"my_mask.jpg"];
UIImage * ShapesBase = [UIImage imageNamed:@"largerimage.jpg"];
UIImage * MaskImageFull;

CGSize finalSize = CGSizeMake(480.0, 320.0);
UIGraphicsBeginImageContext(finalSize);
[ShapesBase drawInRect:CGRectMake(0, 0, 480, 320)];
[MaskImage drawInRect:CGRectMake(150, 50, 250, 250)];
MaskImageFull = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

我可以输出这个UIImage(MaskImageFull),它看起来是正确的,它是一个全尺寸的背景大小,它是一个白色背景,我的面具对象是黑色的,在屏幕上的正确位置.

然后我通过这个传递MaskImageFull UIImage:

CGImageRef maskRef = [maskImage CGImage];
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
    CGImageGetHeight(maskRef),
    CGImageGetBitsPerComponent(maskRef),
    CGImageGetBitsPerPixel(maskRef),
    CGImageGetBytesPerRow(maskRef),
    CGImageGetDataProvider(maskRef), NULL, false);

CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
UIImage* retImage= [UIImage imageWithCGImage:masked];
Run Code Online (Sandbox Code Playgroud)

问题是retImage全黑.如果我将预制的UIImage作为掩码发送它可以正常工作,那就是当我尝试从多个图像中创建它时它会断开.

我认为这是一个色彩空间的东西,但似乎无法解决它.任何帮助深表感谢!

iphone cocoa-touch image-manipulation objective-c quartz-graphics

14
推荐指数
2
解决办法
2万
查看次数