当UIButton的帧位于其父级帧之外时,UIButton(或任何其他控件)是否可以接收触摸事件?因为当我尝试这个时,我的UIButton似乎无法接收任何事件.我该如何解决这个问题?
关于如何在App中显示PDF有很多资源UIView.我现在正在做的是从中创建一个PDF UIViews.
例如,我有一个UIView,与像Textviews子视图,UILabels,UIImages,所以我怎么能转换成一个大的 UIView整体,包括其所有子视图和subsubviews到PDF?
我查看过Apple的iOS参考资料.但是,它只涉及将文本/图像片段写入PDF文件.
我面临的问题是我想以PDF格式写入文件的内容很多.如果我将它们逐个写入PDF,那将是一项巨大的工作.这就是我寻找写入UIViewsPDF甚至位图的方法的原因.
我已经尝试过在Stack Overflow中从其他Q/A复制的源代码.但它只给我一个带有UIView边界大小的空白PDF .
-(void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename
{
// Creates a mutable data object for updating with binary data, like a byte array
NSMutableData *pdfData = [NSMutableData data];
// Points the pdf converter to the mutable data object and to the UIView to be converted
UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil);
UIGraphicsBeginPDFPage();
// draws rect to the view and thus this is …Run Code Online (Sandbox Code Playgroud) 我需要在UIView中绘制一条水平线.什么是最简单的方法.例如,我想在y-coord = 200处绘制黑色水平线.
我不使用Interface Builder.
用UIKit 绘制虚线很容易.所以:
CGFloat dashes[] = {4, 2};
[path setLineDash:dashes count:2 phase:0];
[path stroke];
Run Code Online (Sandbox Code Playgroud)

有没有办法画出真正的虚线?

有任何想法吗?
由于这个问题很老,没有人提出完整的@IBDesignable解决方案,这里是...
希望能节省一些打字的人.
@IBDesignable class DottedVertical: UIView {
@IBInspectable var dotColor: UIColor = UIColor.etc
@IBInspectable var lowerHalfOnly: Bool = false
override func draw(_ rect: CGRect) {
// say you want 8 dots, with perfect fenceposting:
let totalCount = 8 + 8 - 1
let fullHeight = bounds.size.height
let width = bounds.size.width
let itemLength = fullHeight / CGFloat(totalCount)
let path = UIBezierPath()
let …Run Code Online (Sandbox Code Playgroud) 如何以编程方式添加UIView touchbegin动作或touchend动作,因为Xcode不是从Main.storyboard提供的?
以编程方式添加视图时,addSubview和insertSubView方法之间的区别是什么?
我想列出一个中的所有子视图UIViewController.我尝试过self.view.subviews,但并未列出所有子视图,例如,UITableViewCell未找到子视图.任何的想法?
这个调整大小的超级视图的悬念我不能满足上帝的爱.
我有一个UIView *superview 4 UILabels.2用作另外2个的标题.
所有4个内容都来自数据库.
SizeToFitvs SizeThatFits:(CGSize)vs UIView systemLayoutSizeFittingSize:,传球UILayoutFittingCompressedSize或者UILayoutFittingExpandedSize.
我以编程方式使用autolayout并将superview高度设置为等于或大于虚拟数字.
我在哪里以及如何使用这些SizeToFitvs sizeThatFits:(CGSize)vs UIView systemLayoutSizeFittingSize:,传递UILayoutFittingCompressedSize或者UILayoutFittingExpandedSize.我已经在堆栈上阅读了很多提示但最终没有任何结果.
我是否需要在某处特定的情况下重新计算superview的约束.Maby在其控制器类中将高度设置为'@ property`并删除并读取它?Atm我试图将所有东西都放在一起然后放一些.我仍然得到相同大小的最终结果,虚拟高度和文字漂浮在外面.甚至在子视图上设置clipsToBound之后.
我正在抓我的头发..帮助
我试图弄清楚这是如何以正确的方式完成的.我试图描绘这种情况:

我正在添加一个UITableView作为a的子视图UIView.在UIView一个分接开关和响应pinchGestureRecognizer,但这样做的情况下,实现代码如下停止反应,这两个手势(它仍然反应刷卡).
我已经使用以下代码,但它显然不是一个很好的解决方案,我相信有更好的方法.这是放在UIView(超级视图):
-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
if([super hitTest:point withEvent:event] == self) {
for (id gesture in self.gestureRecognizers) {
[gesture setEnabled:YES];
}
return self;
}
for (id gesture in self.gestureRecognizers) {
[gesture setEnabled:NO];
}
return [self.subviews lastObject];
}
Run Code Online (Sandbox Code Playgroud) 只需使用这种方式:
UIView* view2 = [view1 copy]; // view1 existed
Run Code Online (Sandbox Code Playgroud)
这将导致模拟器无法启动此应用程序.
试试保留,
UIView* view2 = [view1 retain]; // view1 existed
// modify view2 frame etc
Run Code Online (Sandbox Code Playgroud)
任何修改view2都适用于view1,我明白view2共享相同的内存view1.
为什么不能UIView复制?是什么原因?
uiview ×10
ios ×8
objective-c ×4
iphone ×3
subview ×2
swift ×2
uikit ×2
addsubview ×1
autolayout ×1
autoresize ×1
cocoa ×1
copy ×1
pdf ×1
uibutton ×1
uiimage ×1
uiresponder ×1