这让我很难过.我有一个UIView(称之为"父").该视图的最底层子视图是UIImageView(称为"child"),其框架占据整个"父"边界.
我想围绕"父"视图的角落,并设置投影.我CALayer像往常一样在"父母"这样做:
[[parent layer] setShadowOffset:CGSizeMake(5, 5)];
[[parent layer] setShadowRadius:6];
[[parent layer] setShadowOpacity:0.4];
[[parent layer] setCornerRadius:6];
Run Code Online (Sandbox Code Playgroud)
这会正确显示阴影,但不会使角落变圆.
这是踢球者:
看起来"子"图像视图只是模糊了"父"视图上的圆角,因为它占据了整个矩形,而基于父视图的剪切获得了角落,但也掩盖了阴影.不确定为什么#3不起作用.
我错过了什么?通过长时间盯着这个,我是否忽视了一些明显的东西?
谢谢.
(令人震惊的是,标签"roundcorners-dropshadow"已经存在.太棒了.)
core-animation roundedcorners-dropshadow calayer uiview uiimageview
基本上我需要一个图像按钮,特别是一个自定义对象:
1)在点击时调用控制器的动作
2)封装自定义数据
3)由包装器视图自动移动(不相关)
好吧,我用一个子类得到了所有这些UIControl(因为UIButton不建议使用子类化UIImageView,并且子类化很难管理第1点).但现在突出它的正确方法是什么?我想以任何方式点击控件(即使是简单的alpha瞬间减少).
随着beginTrackingWithTouch和endTrackingWithTouch我无法识别唯一的UIControlEventTouchUpInside事件.
控制器中的视图动画?在我看来,这是一个粗略的解决方案
有一个简单而直接的解决方案吗?
谢谢 :(
我想做一个圆圈UIImageView,它的工作原理.以下是我用它做的方式:
[self.pic.layer setMasksToBounds:YES];
[self.pic.layer setCornerRadius:50.0];
Run Code Online (Sandbox Code Playgroud)
我想补充一些阴影UIImageView.下面的代码确实为我的图像视图添加了一些阴影,但是,图像视图会变回方形.有人可以给我一些指针来解决这个问题吗?下面是我用来添加阴影的代码:
self.pic.layer.shadowColor = [UIColor purpleColor].CGColor;
self.pic.layer.shadowOffset = CGSizeMake(0, 1);
self.pic.layer.shadowOpacity = 1;
self.pic.layer.shadowRadius = 1.0;
self.pic.clipsToBounds = NO;
Run Code Online (Sandbox Code Playgroud) 我试图创建一个ImageView圆角和阴影给它一些深度.我能够为它创建一个阴影UIImageView,但每当我添加代码也使它有圆角时,它只有圆角而没有阴影.我有一个IBOutlet名字myImage,它在viewDidLoad函数内部.有没有人对如何使其有效有任何想法?我究竟做错了什么?
override func viewDidLoad() {
super.ViewDidLoad()
myImage.layer.shadowColor = UIColor.black.cgColor
myImage.layer.shadowOpacity = 1
myImage.layer.shadowOffset = CGSize.zero
myImage.layer.shadowRadius = 10
myImage.layer.shadowPath = UIBezierPath(rect: myImage.bounds).cgPath
myImage.layer.shouldRasterize = false
myImage.layer.cornerRadius = 10
myImage.clipsToBounds = true
}
Run Code Online (Sandbox Code Playgroud) 我有一个UIScrollView,其中包含多个UIImageViews.
frame = [[UIImageView alloc] initWithImage:bg];
frame.frame = CGRectMake(FRAME_SEPARATOR + numPage*1024 + numColumn*(FRAME_SEPARATOR+230), 10 +numRow*(FRAME_SEPARATOR+145), 230, 145);
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
[frame addGestureRecognizer:tap];
[tap release];
[scroll addSubView:frame];
Run Code Online (Sandbox Code Playgroud)
问题是在点击图像时没有调用imageTapped.
如果我将手势识别器添加到滚动视图,如下所示:
UITapGestureRecognizer *tap =
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
[scroll addGestureRecognizer:tap];
[tap release];
Run Code Online (Sandbox Code Playgroud)
imageTapped被调用.
如何检测UIImageViews上的水龙头?
谢谢
我想在不使用UIWebView的情况下在iPhone中渲染SVG图像.我怎样才能做到这一点?
我检查了这两个链接:
http://www.splashdust.net/2010/09/svgquartzrenderer-a-basic-iphone-sdk-compatible-svg-renderer/ https://github.com/splashdust/SVGQuartzRenderer
Github上面的项目显示了102个错误,显示UIKit框架丢失,其他人也无法添加该框架.我认为该应用程序适用于MacOS而不适用于iOS.
http://maniacdev.com/2011/05/open-source-library-to-render-svg-graphics-as-core-animation-layers/
https://github.com/mattrajca/SVGKit
上面url上的项目显示了构建项目时的错误.
Target指定产品类型'com.apple.product-type.framework',但'iPhoneOS'平台没有这种产品类型.
有谁知道如何解决这个问题?或者我可以使用的其他有用的工作示例?我想在iPhone上渲染SVG.
更新:我通过阅读说明工作SVGKit.但当我试图让我从Github(https://github.com/splashdust/SVGQuartzRenderer )下载的项目工作时,我遇到以下错误:
1)UIKit/UIKit.h:没有这样的文件或目录(我无法使用添加现有框架添加它)
2)Libxml/tree.h:没有这样的文件或目录
3)Expected specifier-qualifier-listbefore'xmlParserCtxtPtr' .有谁知道如何解决它并使其工作?
任何人都可以告诉我如何直接设置Image UIView?这是我的代码:
UIView *view=[[UIView alloc]init];
[view setImage:[UIImage imageNamed:@"image.png"]];
Run Code Online (Sandbox Code Playgroud) 我想使用UICollectionView在iPhone上的网格中显示图像,每行显示3个图像.对于"死的简单测试"(我认为),我已经为我的项目添加了15个JPG图像,因此它们将在我的包中,我可以通过[UIImage imageNamed:...]加载它们.
我想我已经做了一切正确的事情(设置和注册UICollectionViewCell子类,使用UICollectionViewDataSource协议方法),但是,UICollectionView表现得非常奇怪:
它仅显示以下模式中的一些图像:第一行显示图像1和3,第二行显示空白,下一行显示第一行(图像1和3显示正确),第四行显示空白等等. .
如果我在我的NavBar中按下一个触发[self.collectionView reloadData]的按钮,则随机单元格会出现或消失.让我疯狂的是,这不仅是图像出现与否的问题.有时,图像也在单元格之间交换,即它们出现在indexPath中,它们绝对没有连线!
这是我的单元格代码:
@interface AlbumCoverCell : UICollectionViewCell
@property (nonatomic, retain) IBOutlet UIImageView *imageView;
@end
@implementation AlbumCoverCell
@synthesize imageView = _imageView;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
_imageView = [[UIImageView alloc] initWithFrame:frame];
[self.contentView addSubview:_imageView];
}
return self;
}
- (void)dealloc
{
[_imageView release];
[super dealloc];
}
- (void)prepareForReuse
{
[super prepareForReuse];
self.imageView.image = nil;
}
@end
Run Code Online (Sandbox Code Playgroud)
我的UICollectionViewController子类的部分代码,其中'imageNames'是一个包含所有jpg文件名的NSArray:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.collectionView registerClass:[AlbumCoverCell class] forCellWithReuseIdentifier:kAlbumCellID];
}
#pragma mark - UICollectionViewDataSource Protocol …Run Code Online (Sandbox Code Playgroud) 我想在图像的特定区域填充特定颜色.
EX:

在上面的小丑形象中,如果触摸小丑的头发然后填充头发上的特定颜色或触摸鼻子然后填充鼻子上的特定颜色等等.我希望你能理解我想说的话.
谷歌搜索之后可以通过使用UIBezierPath或CGContext Reference来实现,但我是非常新的,我试着阅读这个文档,但我不明白(花更多的时间)任何事情我也有这个项目的时间限制.所以我不能花更多的时间在上面.
我还发现我们可以使用Flood填充算法.但我不知道如何在我的情况下使用.
注意:我不想划分原始图像(如头发,鼻子,帽子等等),因为如果我这样做,那么会有很多图像在捆绑所以我需要处理正常和视网膜设备所以这个选项对我没用.
那么请给我你宝贵的建议,并告诉我哪个最适合我UIBezierPath或CGContext参考?如何在图像的特定部分填充颜色?和/或我们可以在区域的黑色边框下填充颜色吗?因为我是Quartz 2D Programming的新手.
我有一个显示UIImage的UIImageView.
UIImage可能会改变为不同大小的其他UIImage,内部UIImage的位置和大小会根据它而改变.
我的问题是我正在尝试添加一个将在UIImage末尾的视图(它一直在变化),我所能得到的只是UIImageView的框架(它一直保持全屏).
如何获得当前显示UIImage的"框架"?
uiimageview ×10
iphone ×5
ios ×4
uiview ×3
calayer ×2
objective-c ×2
shadow ×2
addsubview ×1
cocoa-touch ×1
highlighting ×1
image ×1
ios6 ×1
sdk ×1
svg ×1
swift ×1
uibutton ×1
uicontrol ×1
uiimage ×1