我在swift 3.0中用html内容创建一个pdf文件:
/**
*
*/
func exportHtmlContentToPDF(HTMLContent: String, filePath: String) {
// let webView = UIWebView(frame: CGRect(x: 0, y: 0, width: 694, height: 603));
// webView.loadHTMLString(HTMLContent, baseURL: nil);
let pdfPrinter = PDFPrinter();
let printFormatter = UIMarkupTextPrintFormatter(markupText: HTMLContent);
// let printFormatter = webView.viewPrintFormatter();
pdfPrinter.addPrintFormatter(printFormatter, startingAtPageAt: 0);
let pdfData = self.drawPDFUsingPrintPageRenderer(printPageRenderer: pdfPrinter);
pdfData?.write(toFile: filePath, atomically: true);
}
/**
*
*/
func drawPDFUsingPrintPageRenderer(printPageRenderer: UIPrintPageRenderer) -> NSData! {
let data = NSMutableData();
UIGraphicsBeginPDFContextToData(data, CGRect.zero, nil);
printPageRenderer.prepare(forDrawingPages: NSMakeRange(0, printPageRenderer.numberOfPages));
let bounds = UIGraphicsGetPDFContextBounds();
for i …Run Code Online (Sandbox Code Playgroud) 以下问题:
<0xb03e7000> Error '!obj' trying to fetch default input device's sample rate
<0xb03e7000> Error getting audio input device sample rate: '!obj'
<0xb03e7000> AQMEIOManager::FindIOUnit: error '!dev'
Run Code Online (Sandbox Code Playgroud)
我在stackoverflow上已经发现了这个问题,但是所提供的解决方案都没有为我工作.
码:
#import "CJTActionViewController.h"
@interface CJTActionViewController()
@property NSURL *url;
@property NSData *songFile;
@property AVAudioPlayer *audioPlayer;
@end
@implementation CJTActionViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.url = [NSURL fileURLWithPath: [NSString stringWithFormat:@"%@/cannon_01.wav", [[NSBundle mainBundle] resourcePath]]];
self.songFile = [[NSData alloc] initWithContentsOfURL:self.url];
self.audioPlayer = [[AVAudioPlayer alloc] initWithData:self.songFile error:nil];
self.audioPlayer.delegate = self;
self.audioPlayer.numberOfLoops = 0;
}
- (IBAction)firePressed(id):sender
{
[self.audioPlayer play]; …Run Code Online (Sandbox Code Playgroud) 使用Appache Lucene TokenStream删除停用词会导致错误:
TokenStream contract violation: reset()/close() call missing, reset() called multiple times, or subclass does not call super.reset(). Please see Javadocs of TokenStream class for more information about the correct consuming workflow.
Run Code Online (Sandbox Code Playgroud)
我用这个代码:
public static String removeStopWords(String string) throws IOException {
TokenStream tokenStream = new StandardTokenizer(Version.LUCENE_47, new StringReader(string));
TokenFilter tokenFilter = new StandardFilter(Version.LUCENE_47, tokenStream);
TokenStream stopFilter = new StopFilter(Version.LUCENE_47, tokenFilter, StandardAnalyzer.STOP_WORDS_SET);
StringBuilder stringBuilder = new StringBuilder();
CharTermAttribute token = tokenStream.getAttribute(CharTermAttribute.class);
while(stopFilter.incrementToken()) {
if(stringBuilder.length() > 0 ) {
stringBuilder.append(" "); …Run Code Online (Sandbox Code Playgroud) 我想使用Android Youtube API,因为我在谷歌控制台中创建了一个API密钥并将其添加到我的项目中.现在,当我执行Youtube查询时,我收到以下消息:
04-25 16:41:05.899: W/System.err(7213): com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
04-25 16:41:05.900: W/System.err(7213): {
04-25 16:41:05.900: W/System.err(7213): "code" : 403,
04-25 16:41:05.900: W/System.err(7213): "errors" : [ {
04-25 16:41:05.900: W/System.err(7213): "domain" : "usageLimits",
04-25 16:41:05.900: W/System.err(7213): "message" : "There is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your API key configuration if request from this IP or referer should be allowed.",
04-25 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Android模拟器在其上安装应用程序.
不幸的是,模拟器永远不会启动.我在cordova项目中使用以下命令:
cordova emulate android
Run Code Online (Sandbox Code Playgroud)
我从控制台获得的最后一个输出是:
Waiting for emulator...
Run Code Online (Sandbox Code Playgroud)
但模拟器永远不会启动(我现在等了45分钟).
路径变量都已正确设置,我可以使用Eclipse或Android studio启动模拟器,但不使用来自cordova的命令.
任何提示?
我有一个导航栏:
<ion-nav-bar class="bar-green-mint" align-title="center">
<ion-nav-back-button>
</ion-nav-back-button>
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon menu-icon" menu-toggle="left">
</button>
</ion-nav-buttons>
</ion-nav-bar>
Run Code Online (Sandbox Code Playgroud)
我想更改导航图标的颜色.对于"普通"图标,例如:
<i class="icon menu-icon ion-home"></i>
Run Code Online (Sandbox Code Playgroud)
我只需要添加css:
.menu-icon {
color: white;
}
Run Code Online (Sandbox Code Playgroud)
但这不适用于导航图标.
那么我怎样才能将它的颜色设置为白色?
我有以下布局:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?android:attr/actionBarSize"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/datatransfer_measure_list_layout_no_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/datatransfer_measure_list_textview_no_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:layout_marginEnd="40dp"
android:layout_marginStart="40dp"
android:layout_marginTop="20dp"
android:gravity="center"
android:padding="5dp"
android:text="@string/measure_data_empty"
android:textColor="@color/textcolorprimary"
android:textSize="18sp" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="center"
android:layout_marginBottom="20dp"
android:layout_marginEnd="20dp"
android:layout_marginStart="20dp"
android:background="@android:color/darker_gray"
android:importantForAccessibility="no" />
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/datatransfer_measure_list_row_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:clipToPadding="false"
android:importantForAccessibility="no"
android:paddingBottom="5dp"
android:textColor="@color/textcolorprimary" />
<Button
android:id="@+id/datatransfer_measure_list_button_send"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="10dp"
android:layout_marginEnd="40dp"
android:layout_marginStart="40dp"
android:background="@drawable/custom_button_ok"
android:gravity="center"
android:padding="10dp"
android:text="@string/common_save"
android:textColor="@drawable/custom_button_positive_text_color"
android:textSize="20sp" />
<Button
android:id="@+id/datatransfer_measure_list_button_reset"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="20dp"
android:layout_marginEnd="40dp"
android:layout_marginStart="40dp"
android:background="@drawable/custom_button_cancel"
android:gravity="center"
android:padding="10dp" …Run Code Online (Sandbox Code Playgroud) 我正在使用 H2 数据库并想要移动一些数据。为此,我创建了以下查询:
UPDATE CUSTOMER
SET EMAIL = SELECT service.EMAIL
FROM CUSTOMER_SERVICE AS service
INNER JOIN CUSTOMER AS customer ON service.ID = customer.CUSTOMER_SERVICE_ID;
Run Code Online (Sandbox Code Playgroud)
当我现在在 H2 控制台中执行它时,出现以下错误:
Scalar subquery contains more than one row; SQL statement:
UPDATE CUSTOMER
SET EMAIL = SELECT service.EMAIL
FROM CUSTOMER_SERVICE AS service
INNER JOIN CUSTOMER AS customer ON service.ID = customer.CUSTOMER_SERVICE_ID [90053-192] 90053/90053 (Hilfe)
Run Code Online (Sandbox Code Playgroud)
这个错误告诉我什么?
编辑
我想通过查询实现什么:
其实每一个CUSTOMER都有一个CUSTOMER_SERVICE. 我只是想将其移至COLUMN EMAIL表格CUSTOMER_SERVICE中CUSTOMER。为此,我已经向用户添加了电子邮件列。我希望能够通过我的查询来做到这一点,但显然不能。
我正在使用将AVPlayerViewController视频嵌入到我的视频中UIView:
class MyView : PopupContentView {
var player : AVPlayer!;
var playerViewController: AVPlayerViewController!;
override func awakeFromNib() {
}
override func setupView() {
super.setupView();
self.setupVideo();
}
deinit {
self.player.pause();
self.player = nil;
}
func setupVideo() {
let path = Bundle.main.path(forResource: "Lebensqualitaet", ofType:"mp4")
let url = URL(fileURLWithPath: path!)
self.player = AVPlayer(url: url);
self.playerViewController = AVPlayerViewController();
self.playerViewController.player = self.player;
self.callbacks.getAVCallbacks()?.setAVPlayerReference(player: self.playerViewController.player!);
self.callbacks.getViewControllerToPresent().addChildViewController(self.playerViewController);
self.addSubview(self.playerViewController.view);
self.playerViewController.view.frame = self.frame;
}
}
Run Code Online (Sandbox Code Playgroud)
在此AVPlayerViewController有一个将视频设置为全屏的按钮。是否可以禁用此按钮?我的问题是,如果视频设置为全屏,并且在禁用全屏后再次关闭整个视图,我不知道为什么。这就是为什么我只想禁用全屏模式的原因。
这是我的单元格布局的低质量模型:
静态单元格的初始高度(在故事板中设置)为80.在此单元格内部有两个视图.底部视图的固定高度为40.顶视图具有布局约束以对齐到顶部边距并垂直对齐到底部视图.
顶视图内部是标签(蓝色)和按钮(黄色)
标签还具有对齐到视图顶部并与视图底部对齐的约束.布局和约束背后的想法是,如果我将单元格的高度增加到100,例如,底部视图高度保持为40,顶部视图和标签高度将扩展到60的高度.
我的标签包含换行自动换行和行数设置为0.我现在想要的是自动调整单元格的大小,以便在有多行时显示标签的完整内容.我怎么能这样做?
我试过了:
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 80.0;
Run Code Online (Sandbox Code Playgroud)
这不起作用.单元格高度始终与单独的行数保持80 UILabel.
我也尝试过:
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension;
}
Run Code Online (Sandbox Code Playgroud)
与我的第一种方法结果相同.
我尝试的更复杂的方法如下:
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let heightLabel = self.heightForView(text: self.lblTitle.text!, font: UIFont(name: "Helvetica Neue", size: 18)!, width: self.lblTime.width);
let heightView = (heightLabel + (80.0 / 2));
print("title label height \(heightLabel)");
print("title view height \(heightView)");
if (heightView > 80.0) {
return heightView;
} …Run Code Online (Sandbox Code Playgroud)