小编Tho*_*asM的帖子

超越UIView界限的互动

当UIButton的帧位于其父级帧之外时,UIButton(或任何其他控件)是否可以接收触摸事件?因为当我尝试这个时,我的UIButton似乎无法接收任何事件.我该如何解决这个问题?

iphone cocoa objective-c uibutton uiview

85
推荐指数
7
解决办法
4万
查看次数

UIView子类有自己的XIB

我创建了一个自定义的UIView子类,并且不希望在UIView子类的代码中布局UI.我想用xib.所以我做的是以下内容.

我创建了一个类"ShareView",它是UIView的子类.我创建了一个XIB文件,其文件所有者设置为"ShareView".然后我链接我在"ShareView.h"中声明的一些出口.

接下来我有一个ViewController,MainViewController,它将ShareView添加为子视图.这段代码:

NSArray *arr = [[NSBundle mainBundle] loadNibNamed:@"ShareView" owner:nil options:nil];
UIView *fv = [[arr objectAtIndex:0] retain];
fv.frame = CGRectMake(0, 0, 320, 407);
[self.view addSubview:fv];
Run Code Online (Sandbox Code Playgroud)

但是现在我在ShareView中声明的插座上出现了NSUnknownKeyException错误.

我做这一切的原因是因为我想要一个UIView,在一个单独的XIB文件中有自己的逻辑.我在几个地方读到ViewControllers只用于管理全屏,即不是屏幕的一部分......那么我做错了什么?我想在单独的类中使用ShareView的逻辑,所以我的MainController类不会因为ShareView的逻辑而膨胀(我认为这是解决这个问题的一种方法吗?)

iphone objective-c interface-builder uiview subclassing

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

Instagram直接打开UTI

我最近偶然发现了以下有趣的功能:Instagram iPhone Hooks

我想知道是否能够立即通过documentinteractioncontroller打开应用程序,无需显示预览( - presentPreviewAnimated :)或操作表( - presentOpenInMenuFromRect:inView:animated :).在我看来,这是唯一的方式,但我可能会遗漏一些东西.

-(void) saveToInstagram {
    NSURL *url;
    UIDocumentInteractionController *dic;
    CGRect rect = CGRectMake(0 ,0 , 0, 0);
    UIImage *i = imageView.image;
    CGRect cropRect = CGRectMake(i.size.width - 306 ,i.size.height - 306 , 612, 612);
    NSString  *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Test.ig"];
    CGImageRef imageRef = CGImageCreateWithImageInRect([imageView.image CGImage], cropRect);
    UIImage *img = [[UIImage alloc] initWithCGImage:imageRef];
    CGImageRelease(imageRef);

    [UIImageJPEGRepresentation(img, 1.0) writeToFile:jpgPath atomically:YES];
    url = [[NSURL alloc] initFileURLWithPath:jpgPath];
    dic = [self setupControllerWithURL:url usingDelegate:self];
    [dic presentOpenInMenuFromRect:rect inView:self.view animated:YES]; …
Run Code Online (Sandbox Code Playgroud)

objective-c ios4 ios uidocumentinteraction instagram

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

CALayer规模不受框架影响?

我正在添加一个包含CGImage内容的子图层.我创建了它的框架,我认为它包含了它的边界和位置.我还设置了图层contentsGravity,因此图像会在UIImageView中正确调整大小,但imageview只显示部分图像,表明CALayer没有正确缩放图像.这里到底发生了什么?为什么CALayer没有合适的规模?

-(void)setImageInView:(UIImage*)img {
    CALayer *mosaicLayer = [CALayer layer];

    mosaicLayer.frame = CGRectMake(0.0f,0.0f, 720.0f, 960.0f);
    mosaicLayer.contentsGravity = kCAGravityResizeAspect;
    mosaicLayer.contents = (id)[img CGImage];

    [imageView.layer addSublayer:mosaicLayer];

    UIGraphicsBeginImageContext(mosaicLayer.bounds.size);
    [mosaicLayer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *saver = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    UIImageWriteToSavedPhotosAlbum(saver, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);   }
Run Code Online (Sandbox Code Playgroud)

iphone core-animation objective-c calayer uiimage

9
推荐指数
0
解决办法
1186
查看次数

如何修复border-radius与box-shadow结合的IE渲染?

有没有人知道如何在IE 9和10-box-shadow和border-radius的组合中"修复"渲染?

使用插入阴影时尤其明显.与webkit/gecko相比,IE中阴影的半径非常不同......

在此图像中,您可以看到问题.左边是一个带有插入框阴影的按钮,右边没有框阴影.(不要介意不同的字体渲染)

在此输入图像描述

这是使用的代码:http://dabblet.com/gist/5450815

css internet-explorer css3

9
推荐指数
1
解决办法
4181
查看次数

layer.renderInContext不考虑layer.mask吗?

我正在尝试将一些UIImages渲染成一张我可以保存在相册中的单张图像.但似乎layer.renderInContext似乎没有考虑图层掩码?

当前行为:照片保存,我看到mosaicLayer,没有maskLayer的屏蔽效果.

预期的行为:照片保存,我在我的视图中看到了图像,顶部是一个蒙面的mosaicLayer.

我使用以下代码来掩盖图像

UIImage *maskImg = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]
                        pathForResource:@"mask" ofType:@"png"]];

    maskLayer = [[UIImageView alloc] initWithImage:maskImg];
    maskLayer.multipleTouchEnabled = YES;
    maskLayer.userInteractionEnabled = YES;
    UIImageView *mosaicLayer = [[UIImageView alloc] initWithImage:img];
    mosaicLayer.contentMode = UIViewContentModeScaleAspectFill;

    mosaicLayer.frame = [imageView bounds]; 
    mosaicLayer.layer.mask = maskLayer.layer;

    [imageView addSubview:mosaicLayer];
Run Code Online (Sandbox Code Playgroud)

然后我使用此代码来保存我的合成图像:

UIGraphicsBeginImageContext(imageView.bounds.size);
    [imageView.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *saver = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    UIImageWriteToSavedPhotosAlbum(saver, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
Run Code Online (Sandbox Code Playgroud)

编辑:这正确应用了面具

-(IBAction) saveImage { 
UIImage * saver = nil;
CGImageRef image = imageView.image.CGImage;

size_t cWidth = CGImageGetWidth(image);
size_t cHeight = CGImageGetHeight(image);
size_t bitsPerComponent …
Run Code Online (Sandbox Code Playgroud)

iphone mask objective-c uiimage ios

6
推荐指数
1
解决办法
4476
查看次数

确保使用某个组件的新实例

我有一种感觉,这是一个"错误"的问题,但无论如何都要进行:

我正在制作某种测验应用程序(使用redux进行状态管理).(在这里显示重要的位)

quiz.js

<Slider {...sliderSettings} slideIndex={currentQuestionIndex}>
    <Start onStart={() => onNextQuestion()} topicId={topicId}  />

    {
        questions.map((question, ndx) => {
            return (
                <Question {...question} done={onDone} key={`question-${question.id}`} />
            );
        })
    }

    <Result score={score} onRestart={() => onRestart()}/>
</Slider>
Run Code Online (Sandbox Code Playgroud)

question.js

<div className="question">
    <h2 className="question__text">{ question }</h2>
    <MultipleChoice options={answers} onChange={done} />
</div>
Run Code Online (Sandbox Code Playgroud)

多choice.js

const
    initialState = {
        selectedValue: null
    };

class MultipleChoice extends Component {
    constructor(props) {
        super(props);
        this.state = initialState;
    }

    handleChange(value, correct) {
        this.setState({
            selectedValue: value
        });

        this.props.onChange(correct);
    }

    render() {
        const
            { options } …
Run Code Online (Sandbox Code Playgroud)

reactjs redux

2
推荐指数
1
解决办法
943
查看次数

从CALayers绘制图像

我正在构建某种审查应用程序.到目前为止,我已经完成了用我的iPhone拍摄的图像像素化.

但我想最终实现这样的图像:http://images-mediawiki-sites.thefullwiki.org/11/4/8/8/8328511755287292.jpg

所以我的想法是完全像素化我的图像,然后在它上面添加一个蒙版,以达到预期的效果.因此,就层次而言,它就像:originalImage + maskedPixelatedVersionOfImage ..我正在考虑在触摸图像时为蒙版设置动画,以将蒙版缩放到所需的大小.手指放在图像上的时间越长,面具就越大......

经过一番搜索,我想这可以使用CALayers和CAAnimation来完成.但是,我如何将这些图层合成到我可以保存在iphone上的photoalbum中的图像?

我在这里采取正确的方法吗?

编辑:

好吧,我觉得Ole的解决方案是正确的,虽然我仍然没有得到我想要的东西:我使用的代码是:

    CALayer *maskLayer = [CALayer layer];
    CALayer *mosaicLayer = [CALayer layer];

    // Mask image ends with 0.15 opacity on both sides. Set the background color of the layer
    // to the same value so the layer can extend the mask image.
    mosaicLayer.contents = (id)[img CGImage];
    mosaicLayer.frame = CGRectMake(0,0, img.size.width, img.size.height);
    UIImage *maskImg = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"mask" ofType:@"png"]];
    maskLayer.contents = (id)[maskImg CGImage];
    maskLayer.frame = CGRectMake(100,150, maskImg.size.width, maskImg.size.height);

    mosaicLayer.mask …
Run Code Online (Sandbox Code Playgroud)

iphone core-animation core-graphics objective-c quartz-graphics

1
推荐指数
1
解决办法
7960
查看次数